2
我是Knockout的新手。我正在嘗試一個場景,但我無法使其工作。請幫忙。我正在使用MVC4。敲除陣列過濾器和計算可觀察不工作
function ViewModel(data) {
var self = this;
this.Collection = ko.observable(data);
self.GetFilteredCollection = ko.computed(function() {
var filteredCollection = ko.utils.arrayFilter(self.Collection(), function (item) {
return item.IsSelected == true;
});
return filteredCollection;
});
self.FilteredCollectionCount = ko.computed(function() {
return self.GetFilteredCollection().length;
});
});
var collectionList = eval('<%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model.Collection) %>');
var VM = new ViewModel(collectionList);
ko.applyBindings(VM);
我已將IsSelected
屬性綁定到複選框。最初IsSelected
屬性將被設置爲false。
<span id="Span1" data-bind="text:$root.FilteredCollectionCount"></span>
我總是得到跨度值爲0,即使我選中該複選框。但我可以看到屬性IsSelected
更改爲true。
我還沒有定義一個項目模型。我只是通過序列化來模仿我從模型中獲得的價值。 – Venkat
您需要使用observables,將數據手動映射到具有observables的視圖模型或使用映射插件 – Anders
謝謝。它的工作現在。 – Venkat