1
我有一個關於使用敲除映射插件的問題。敲除映射插件不能創建可觀察的屬性
我從服務器獲取一個簡單的數組,並使用映射插件將其轉換爲javascript對象。因爲我希望項目上的屬性是可觀察的,所以我爲pugin提供了創建回調的自定義映射。
var meeting = function (id, titel, description) {
var self = this;
self.Id = id;
self.Titel = ko.observable(titel);
self.Description = ko.observable(description);
self.Test = ko.computed(function() { return self.Description(); });
return self;
}
var mapping = {
create: function (json) {
return new meeting(json.data.Id, json.data.Titel, json.data.Description);
}
}
當我打電話ko.mapping.fromJS(myFetchedData)我看到(附帶調試器)的創建功能被稱爲在我的陣列的每個項目。一切都綁定到HTML控件罰款。我看到一個li項目出現在數組中的每個項目中。
<ul id="meetings" data-bind=" foreach: meetings">
<li class="ui-widget-content ui-corner-all">
<h1 data-bind="text: Titel" class="ui-widget-header"></h1>
<div>
<input type="text" data-bind="text: $data.Description || 'Omschrijving?'"></input>,
</div>
<div>
<input type="text" data-bind="text: $data.Test || 'Omschrijving?'"></input>,
</div>
<a href="#" data-bind="click: $root.updateMeeting" >Update</a>
<a href="#" data-bind="click: $root.removeMeeting" >Remove</a></p>
</li>
</ul>
但是:Description屬性似乎不是可觀察的。更改該值不會導致Test-computed屬性的更新值。
我在這裏錯過了什麼嗎?
任何幫助,將不勝感激。
完整的示例代碼可以在這裏找到: http://jsfiddle.net/dtiemstra/wRg88/
哎喲:那疼......非常感謝 – DiederikTiemstra 2012-08-10 14:54:53
不要擔心。這是每個淘汰賽開發者在某個時候發現的前10個錯誤! :-) – 2012-08-10 15:49:13