1
我有看起來像這樣的淘汰賽視圖模型:推的項目與映射插件創建一個observableArray它的創建後
var TagViewModel = function (allPrincipals) {
var self = this;
self.name = ko.observable(tagName);
var principalMapping = {
create: function(options) {
return {
label: options.data.name,
key: options.data.type + '___|' + options.data.name,
icon: options.data.type == "User" ? "img/misc/user20.png" : "img/misc/group20.png"
};
},
key: function(data) {
return data.key;
}
};
self.allPrincipals = ko.mapping.fromJS(allPrincipals, principalMapping);
}
allPrincipals
會是這個樣子:
var allPrincipals = [{name: "Alex" type: "User"}, {name: "John", type: "User"}, {name: "Staff", type: "Group}]
因此,在創建視圖模型的時候,我們有這樣的事:
var vm = new TagViewModel(allPrincipals);
這工作得很好。
然而,在視圖模型,我需要能夠在推新的項目到allPrincipals觀察到的陣列(由映射插件創建)
什麼是做到這一點的最好方法是什麼?
因此,舉例來說,有在視圖模型是一個函數:
self.addPrincipal = function(prinipal){
//allPrincipals.push(?)
}