在使用淘汰赛时,使用只读计算的可观察对象而不是简单的函数有什么优势?
以下面的viewmodel构造函数和html片段为例:</p>
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = function(){
return self.someProperty() + self.anotherProperty();
};
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty()"></p>
这里的一切似乎都如你所料,所以我应该改用:
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = ko.computed(function(){
return self.someProperty() + self.anotherProperty();
});
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty"></p>
我注意到http://knockoutjs.com/documentation/computedObservables.html上的文档指出“......声明性绑定只是作为计算的 observables 实现”,这是否意味着我需要在我的视图模型中明确使用它们?