一部のサブスクリプションko.mapping
を持つモデルを更新するとエラーが発生します。サブスクリプションが削除されるとすぐに、すべてが魔法のように機能します. それを機能させる方法はありますか?
この例を考えてみましょう ( jsfiddle available ) -トリガーエラーko.mapping.fromJS()
での呼び出し:initModel()
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());