我一直在努力嘗試許多不同的不成功方法。我會盡全力嘗試我嘗試過的所有嘗試,並向您展示我正在與之合作的內容。它看起來像這樣..如何在ajax成功後修改json數據?
// Retrieve unique list of items
self.items= ko.observableArray([]);
$.ajax({
url: self.options.itemsURL,
data: {},
dataType: "json",
success: function (data) {
data = data || {};
self.items(data);
self.items.unshift({"packet": "All","checked": "true"});
}
});
成功之後,數據似乎被傳遞到self.items數組中。然後將一個新元素添加到名爲「All」的數組頂部。
這工作得很好,用於爲我生成帶有複選框的項目列表。但是,我需要能夠監視和訪問數據,以瞭解何時有人檢查了框,知道檢查了哪些框,並在需要時修改框的值。默認情況下,選中「全部」選項。如果有人檢查另一個盒子,我希望「全部」框不被選中。到目前爲止,我在監視這些數組的所有嘗試中都沒有成功,但我不太瞭解這種編程風格。有人能指出我對這個問題的正確方向嗎?
由於
這聽起來像komapping會爲你工作,因爲你需要知道每個數組項目的狀態。如果你做了一些像self.items = ko.observableArray(komapping.fromJS(data)),它會使每個屬性都是可觀察的。然後你可以說訂閱改變事件 – segFault 2014-11-04 00:09:56
旁註;當然應該是'data = data || []'? – Retsam 2014-11-04 02:05:31