Sła*_*iek 6 javascript knockout.js
有没有办法一次调用一些值的方法改变?我为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();
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我改变一些值myMethod被调用两次因为来自dependencyObservable也被改变了.有任何想法吗?
如果您只想订阅更改的值,您可以订阅任何observable:
var viewModel = { property: ko.observable() };
viewModel.property.subscribe(function(newValue) {
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
要订阅对象的所有属性,您可以执行以下操作:
function subscribeAll(viewModel) {
for(var propertyName in viewModel) {
if(viewModel[propertyName].subscribe === 'function') {
viewModel[propertyName].subscribe(function(newValue) {
//do stuff
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2596 次 |
| 最近记录: |