我有一个外部对象在我的视图模型之外进行了大量处理。我希望能够使用触发器从此对象发送数据。
是否可以使用valueHasMutated
从普通对象向订阅者传递数据?
function obj(trigger) {
var self = this;
self.notify = function (value) {
trigger.call(undefined,value);
};
}
function vm() {
var self = this;
self.flag = ko.observable();
self.myobj = new obj(self.flag.valueHasMutated);
self.flag.subscribe(function(value) {
console.debug("Caught trigger with value " + value);
});
}
ko.applyBindings(new vm());
// trigger
ko.dataFor(document.body).myobj.notify("Working");
触发器正在弹出,但我得到的值是undefined
。
感谢您的任何帮助。
修改
看the source我可以看到valueHasMutated
获得了“新价值”,但仍然无法使其发挥作用。
答案 0 :(得分:0)
好的,发帖回答,直接更改旗帜的价值:self.myobj = new obj(self.flag)