我的对象中有一个可观察的属性(命名属性)。不幸的是,只有在我第一次更改它时它才会刷新。
有什么不对?
代码:
var Session = function(vm, session) {
var self = this;
ko.mapping.fromJS(session, {}, self);
self.selectedSessionProperty = ko.observable('');
self.restarting = ko.observable(false);
if (! ko.isObservable(self.properties)) {
self.properties = ko.observableArray();
}
self.availableNewProperties = ko.computed(function() {
var addedIndex = {};
$.each(self.properties(), function(index, property) {
addedIndex[property.key] = true;
});
var result = $.grep(vm.availableSessionProperties(), function(property) {
return ! addedIndex[property.name];
});
return result;
});
};
答案 0 :(得分:1)
尝试self.properties.valueHasMutated();在循环之后,这应该触发敲除更新。
您还可以使用knockout实用程序功能来帮助您使用数组:http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html