У меня есть модель представления, содержащая ссылку на другой объект, и связанный объект привязан к моему пользовательскому интерфейсу. Связывание, кажется, отлично работает, когда я добавляю объекты в наблюдаемый массив, но, похоже, не обновляюсь, когда я очищаю массив.Knockout js binding not update
Я воспроизвел проблему jsfiddle, и мне интересно, может ли кто-нибудь указать мне в правильном направлении?
http://jsfiddle.net/chriswnichols/gcywcce7/
function County(name) {
this.Name = name;
}
function ListCriteria() {
var self = this;
self.States = ko.observableArray([]);
self.Counties = ko.observableArray([]);
self.Zips = ko.observableArray([]);
self.Cities = ko.observableArray([]);
self.DobRanges = ko.observableArray([]);
self.Clear = function() {
self.States = ko.observableArray([]);
self.Counties = ko.observableArray([]);
self.Zips = ko.observableArray([]);
self.Cities = ko.observableArray([]);
self.DobRanges = ko.observableArray([]);
};
}
var ViewModel = function() {
var listCriteria = new ListCriteria(),
reset = ko.computed(function() {
listCriteria.Clear();
});
return {
listCriteria: listCriteria,
reset: reset
}
};
viewModel = new ViewModel();
ko.applyBindings(viewModel);
Спасибо.
'self.States = ko.observable (ko.observableArray ([]));' не является хорошим методом, внешний наблюдаемый не будет вести себя как массив и потребует двойной разворачивания. В качестве свойства используйте наблюдаемый массив. 'selfStates = ko.observableArray ([])'. – Tyrsius
Это хороший момент; пример (признанный глупым) был включен для полноты, наряду с дополнительной разворачиванием требуемой привязки данных. – user2864740
Я реализовал первый подход, и он отлично поработал. Благодарю. – user135498