我有两个组件要在它们之间同步一个可观察的数组。它可以找到一个可观察的,但是有一个数组它永远不会同步。你可以function myFunc(types, pages, callback) {
var pageResults = [];
for (var i = 0; i < types.length; i++) {
var type = types[i];
for (var j = 1; j < pages; j++) {
getBikes(type, j, function(err, results, settings){
if(err) throw err;
var obj = {
results: results,
settings: settings
};
pageResults.push(obj);
if((i === types.length-1) && (j === pages -1)){
callback(pageResults);
}
});
};
};
});
一个可观察的数组吗?
如果我将数组转换为字符串然后同步它传递的observable,那么我必须重新构建另一个vm上的observable数组。可以只使用syncWith
吗?
VM1
syncWith
VM2
self.offers = ko.observableArray([]).syncWith("offersLink");
var mappedLogs = $.map(allData, function (item) { return new model.offerList(item) });
self.offers(mappedLogs);
答案 0 :(得分:1)
想通了!
self.offers = ko.observableArray([]).syncWith("offersLink");
应该是
self.offers = ko.observableArray().syncWith("offersLink");
[]总是用空数组覆盖