【发布时间】:2014-01-20 23:45:59
【问题描述】:
我正在尝试使用敲除在范围内显示扩展函数的值。
这是我的 HTML:
<input type="text" data-bind="value: clientName" />
<span data-bind="text: clientName.dummy"></span>
还有我的 Javascript 代码:
Model = function() {
//MyExtension definition
ko.extenders.MyExtension = function(target, options) {
target.dummy = ko.observable('hello');
target.subscribe(function(newValue){
target.dummy = ko.observable(new Date().toString());
target.dummy.notifySubscribers(); //this shouldn't be necessary
});
return target;
};
this.clientName = ko.observable().extend({MyExtension: "some options here"} );
};
myModel = new Model()
ko.applyBindings(myModel);
由于“dummy”本身就是一个可观察的,我所期待的行为是:
1) User changed input box text
2) knockout trigers the subscribe function (and this is hapening)
3) dummy value is updated with current time (happens to)
4) The span's text is updated with last dummy value (this is not happening)
知道为什么吗? 谢谢。
PS:这是完整的测试:http://jsfiddle.net/AYLv8/5/
【问题讨论】: