Javascript 观察MyArray()。长度敲除

Javascript 观察MyArray()。长度敲除,javascript,knockout.js,Javascript,Knockout.js,是否可以将长度存储在一个可观察数组中的一个可观察变量中,并将其绑定到视图,类似这样的事情 self.MyArray = ko.observableArray([]); self.MyArraylength = self.MyArray().length; //Bind in view self.Observelength = ko.observable(self.MyArraylength); 当我提醒MyArray length时,它似乎更新正确,但无法在视图中更新它 因为MyArrayLe

是否可以将长度存储在一个可观察数组中的一个可观察变量中,并将其绑定到视图,类似这样的事情

self.MyArray = ko.observableArray([]);
self.MyArraylength = self.MyArray().length;
//Bind in view
self.Observelength = ko.observable(self.MyArraylength);

当我提醒MyArray length时,它似乎更新正确,但无法在视图中更新它

因为MyArrayLength是不可观测的,所以当可观测到时它不会更新。您需要一个计算函数

你应该:

self.MyArray = ko.observableArray([]);
// bind in view
self.Observelength = ko.computed(function(){
    return self.MyArray().length;
});

以下两种说法:

self.MyArraylength = self.MyArray().length;    
ko.observable(self.MyArraylength);
仅包含一个数字作为其值。不再有对原始数组或其长度的引用

您需要计算长度:

self.ObserveLength = function() {
    return self.MyArray().length;
};
或者,您可以订阅阵列上的更改并更新长度,然后:

self.MyArray.subscribe(function() {
    self.MyArraylength = self.MyArray().length;
});

修正了长度检查