【发布时间】:2013-06-13 18:24:33
【问题描述】:
使用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 以便为用户保存状态。谢谢。
【问题讨论】:
-
你想达到什么目的?你为什么不只是在
someBool属性上使用subscribe? jsbin.com/exokav/2/edit -
也许
subscribe就是我要找的东西!我怎么做?我最终试图实现一种方法来更新localStorage,只要用户切换该复选框,即data-binded 到.someBool。帖子中有更多详细信息,“但稍后我想......”
标签: knockout.js knockout-mapping-plugin