0

使用knockoutand 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以保存用户的状态。谢谢。

4

1 回答 1

0

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

viewModel.someBool.subscribe(function(val) {
   // Write val to local storage.
});
于 2013-06-13T19:29:03.077 回答