2013-04-23 98 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