使用knockout
和knockout mapping
,如何拦截属性的写入?
我尝试了什么:
var data = { someBool: false, someOther: 'test value' };
var vm = ko.mapping.fromJS(data);
viewModel.someBool = ko.computed({
read: function () { return this.someBool(); }
, write: function (value) { this.someBool(value); $("#out").append("<br/>writing " + value); }
, owner: this
});
ko.applyBindings(vm);
加载js时遇到以下错误:Uncaught TypeError: Object [object global] has no method 'someBool'
在这里直播js:http://jsbin.com/exokav/1/edit
我现在只想尝试附加一些$(“#out”)div,但后来我想写信给localStorage
以便为用户保存状态。感谢。
答案 0 :(得分:0)
如果您只是在someBool更改时尝试写入本地存储,请执行以下操作:
viewModel.someBool.subscribe(function(val) {
// Write val to local storage.
});