1
目前,我有一個計算觀察到的類似:創建一個類似於observableArray的計算可觀察性?
// Backed with either an observable array or an observable of an array
var underlying = ko.observable([..]);
var obs = ko.computed({
read: function() { return underlying(); },
write: function (items) {
// Process items - basically, I have the parent collection quickly
// subscribe to an observable on each item. This in and of itself
// should likely be cleaned up, but is not the focus of this question.
// For instance:
items.forEach(function (i) {
if (!subscribed(i.title)) {
i.title.subscribe(removeItemWhenEmptyTitle);
}
});
underlying(items);
}
});
不過,我想能夠治療這個計算觀察到像observable array這樣,我可以打電話obs.push(..)
和這樣。
破解這件事有點微不足道,但它感覺不對,我不想複製所有現有的可觀察數組方法。
obs.push = function (item) {
var arr = obs();
arr.push(item);
obs(arr);
});
而且,我可能會丟失可觀察到的陣列和陣列可觀察到的之間的關鍵區別。
因爲,它看起來像你沒有操縱正在寫入的值,你可以只使用一個observableArray,然後訂閱它來做你的處理。 –
@RPNiemeyer我已經更新了我的代碼,以顯示我正在嘗試寫入的要點。 「Y」問題圍繞讓*父母*認可/反應孩子中的觀察物而展開 - 例如,當小孩的標題observable設置爲「」時,從* parent *集合中刪除子項/項目。 – user2864740
@RPNiemeyer哦,哦。對。是的,我*可以*做到這一點。 – user2864740