我正在尝试向 View 模型中的所有可观察对象添加扩展器。我的数据来自服务器,所以我无法一一指定属性。
我尝试了这个,但它不起作用,我在本示例中使用了 knockout js 网页中的 logChange 扩展程序。
var addingExtender = {
key: function (data) {
return data.id;
},
create: function(options) {
return ko.observable(true).extend({ logChange: "Value Changed" });
}
};
ko.mapping.fromJS(data, addingExtender, self);
最佳答案
我最终做了一个函数来一一添加扩展器。
function addStorage(koViewModel,name) {
for (var observableKey in koViewModel) {
if (ko.isObservable(koViewModel[observableKey])
&& !isObservableArray(koViewModel[observableKey])) {
koViewModel[observableKey].extend({ persist: name === undefined ?
url + observableKey : url + name + "." + observableKey });
}
if (typeof koViewModel[observableKey] === "object") {
for (var observables in koViewModel[observableKey]) {
if (ko.isObservable(koViewModel[observableKey][observables])
&& !isObservableArray(koViewModel[observableKey][observables])) {
koViewModel[observableKey][observables].extend({ persist: url +
observableKey + "." + observables });
}
}
}
}
}
关于javascript - 如何为 knockout View 模型中的每个可观察对象添加扩展器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793562/