При использовании нокаута в чем преимущество использования вычисляемых наблюдаемых данных, а не простых функций?
Возьмите следующий конструктор viewmodel и html-фрагмент, например:
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 указано, что "... декларативные привязки просто реализуются как вычисленные наблюдаемые", что мне нужно использовать их явно в моих моделях?