我最终将$.each()
我在问题中提到的循环添加到负责在Main ViewModel
. 我遍历observableArry()
myrow viewmodels
并调用它们的calculate
函数(刚刚添加的函数除外)。这很好用,我知道我可以做到。我想避免每次向表中添加新行时循环遍历我的数组。这是一些代码:
var rowVM = function () {
var self = this;
// Data
...
// state
...
// Operations
...
self.calculate = function () {
// logic
}
}
var MainVM = function () {
var.self = this;
...
// Data
self.rowVMs = ko.observableArray([]);
// Operations
...
self.addRow() {
var row = new rowVM();
self.rowVMs.push(row);
self.setCurrentRow(row);
$.each(self.rowVMs, function(index, vm) {
if(vm.bulletchart) // The one just added is ignored
vm.calculate();
});
}
self.setCurrentRow(current) {
// update currentRow observable obj
// draw config. panel
...
}
}