【问题标题】:Knockout custom binding create functionKnockout 自定义绑定创建函数
【发布时间】:2013-04-23 20:23:13
【问题描述】:

我想创建一个淘汰赛自定义绑定(这样我就可以添加一个计算出的 observable),就像这个例子一样:

var mapping = {
    'children': {
        create: function(options) {
            return new myChildModel(options.data);
        }
    }
}

问题是,我的 viewModel 是实际的数组(根)。在此示例中,不是作为“孩子”的子属性。 所以我需要类似的东西:

var mapping = {
    'root': {
        create: function(options) {
            return new myChildModel(options.data);
        }
    }
}

我怎样才能做到这一点? 谢谢。

【问题讨论】:

    标签: knockout.js custom-binding


    【解决方案1】:

    不能直接使用插件的法线贴图功能吗?

    var viewmodel = ko.observableArray([]);
    ko.utils.arrayForEach(options.data, function(data) {
        viewmodel.push(new myChildModel(data));
    }
    

    虽然我个人不会让您的视图模型成为数组,而是让数组成为视图模型上的属性,但如果您将来想添加更多属性,它会为您提供更大的灵活性。

    【讨论】:

    • 感谢保罗的回复。但我需要通过 ko.mapping 插件的“创建”功能来完成。
    • 如果您需要通过 create 属性来完成,那么我相当确定您需要在视图模型上拥有一个属性。老实说,我认为只有一个数组的视图模型没有多大意义,通常你想在页面上显示的信息比这更多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    相关资源
    最近更新 更多