目前我有一个类似于:
的计算可观察量// 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那样处理这个计算的observable,以便我可以调用obs.push(..)
等。
破解它有点微不足道,但感觉不对,我不想复制所有现有的可观察数组方法。
obs.push = function (item) {
var arr = obs();
arr.push(item);
obs(arr);
});
另外,我可能错过了一个可观察数组和数组的可观察之间的重要区别。
答案 0 :(得分:1)
从评论中移出:
最简单的路径就像只使用observableArray,然后订阅它来进行处理,因为你是机器人在编写之前操纵它。