如何使用knockout映射库拦截写入

时间:2013-06-13 18:24:33

标签: knockout.js knockout-mapping-plugin

使用knockoutknockout 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以便为用户保存状态。感谢。

1 个答案:

答案 0 :(得分:0)

如果您只是在someBool更改时尝试写入本地存储,请执行以下操作:

viewModel.someBool.subscribe(function(val) {
   // Write val to local storage.
});
相关问题