Knockout: berechnete beobachtbare vs. Funktion
Was ist bei der Verwendung von Knockout der Vorteil der Verwendung von schreibgeschützten berechneten Observablen anstelle von einfachen Funktionen?
Nehmen Sie zum Beispiel den folgenden viewmodel-Konstruktor und das folgende HTML-Snippet:
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>
Alles hier scheint so zu funktionieren, wie Sie es erwarten, und es gibt einen Grund, warum ich stattdessen verwenden sollte:
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>
Mir ist aufgefallen, dass die Dokumentation beihttp://knockoutjs.com/documentation/computedObservables.html stellt fest, dass "... deklarative Bindungen einfach als berechnete Observablen implementiert werden", bedeutet dies also, dass ich sie explizit in meinen Ansichtsmodellen verwenden muss?