2013-04-23 34 views
0

我想创建一个淘汰赛定义绑定(这样我就可以添加一个计算观察到的),像这个例子:淘汰赛定义绑定创建功能

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

的问题是,我的ViewModel是实际的数组(该根)。在这个例子中,不是儿童财产。 所以,我需要这样的东西:

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

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

回答

0

难道你不能只使用插件的正常映射功能来做到这一点吗?

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

虽然我个人不会让你的看法的阵列模式,而且使数组的属性上的视图模式,它如果要在将来添加更多的属性为您提供更多的灵活性。

+0

感谢您回复保罗。但我需要通过ko.mapping插件的'创建'功能来完成。 – 2013-04-23 12:53:38

+0

如果您需要通过create属性来完成,那么我相当确定您需要在视图模型上拥有一个属性。说实话,我认为拥有一个仅仅是一个数组的视图模型是非常有意义的,通常你需要在页面上显示更多的信息。 – 2013-04-23 13:08:41