ko.mapping
更新具有一些订阅的模型时出现错误。一旦订阅被删除,一切都会像魅力一样发挥作用。知道如何使它工作吗?
考虑这个例子(jsfiddle 可用) - 调用ko.mapping.fromJS()
ininitModel()
触发错误:
var iniData = {
FirstName: "foo",
LastName: "bar"
};
var PersonModel = function() {
this.FirstName = ko.observable("");
this.LastName = ko.observable("");
this.FullName = ko.observable("");
// If you comment out subscribe() calls, everything works fine!
this.FirstName.subscribe(this.updateFullName);
this.LastName.subscribe(this.updateFullName);
// Update FullName only if it's empty
this.updateFullName = function(){
if (!this.FullName()) {
this.FullName(
this.LastName() +
this.FirstName() ? (
" " + this.FirstName()
):''
);
}
};
this.initModel = function(){
try {
ko.mapping.fromJS(iniData, {}, this);
}
catch(err) {
alert(err.message);
}
}
}
ko.applyBindings(new PersonModel());