Knockout.js 如何使用敲除映射库截取写操作

Knockout.js 如何使用敲除映射库截取写操作,knockout.js,knockout-mapping-plugin,Knockout.js,Knockout Mapping Plugin,使用knockout和knockout映射,如何拦截对属性的写入 我所尝试的: 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.s

使用
knockout
knockout映射
,如何拦截对属性的写入

我所尝试的:

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);
var data={someBool:false,someOther:'testvalue'};
var vm=ko.mapping.fromJS(数据);
viewModel.someBool=ko.computed({
read:function(){返回this.someBool();}
,write:function(value){this.someBool(value);$(“#out”).append(“
writing”+value);} 所有者:这个 }); ko.应用绑定(vm);
我在加载js时遇到以下错误:
uncaughttypeerror:Object[objectglobal]没有方法“someBool”

现场直播:


我现在只想添加一些$(“#out”)div,但稍后我想写入
localStorage
,以便为用户保存状态。谢谢。

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

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

你想达到什么目标?你为什么不在
someBool
属性上订阅
subscribe
?也许
订阅
就是我要找的!我该怎么做?我最终尝试实现一种方法,每当用户切换该复选框时更新
localStorage
,即
data bind
ed到
.someBool
。更多的细节在帖子中,“但稍后我想……”