6
有没有办法在值更改时调用一次某种方法?我创建了包装器bindingHandlers.value是调用这个方法:在更改值时调用自定义方法
var update = bindingHandlers.value.update;
bindingHandlers.value.update = function(element, valueAccessor, allBindingAccessor, viewModel) {
var newValue = ko.utils.unwrapObservable(valueAccessor());
var elementValue = ko.selectExtensions.readValue(element);
var valueHasChanged = (newValue != elementValue);
update(element, valueAccessor, allBindingAccessor, viewModel);
if (valueHasChanged) {
myMethod();
}
}
可惜的是,当我改变了一些值myMethod的被称为两次监守来dependencyObservable也发生了变化。有任何想法吗?
我有租赁计算器,需要具有约20个属性的对象,我想通过我的viewModel这个计算器作为参数,所以我想订阅大部分属性。 –
您可以随时迭代属性,并且每个属性都是一个'observable'或'observableArray'调用'subscribe'(简单的方法可能只是测试每个属性是否具有'subscribe'函数) –
已更新我的答案'subscribeAll'方法,请注意,它不会执行深度图,只是浅度。 –