Ich mag verbindlich Kontext der Lage sein, einen verbindlichen Rahmen zu schaffen, indem auf eine Eigenschaft zu binden, in ähnlicher Weise, wie die with
Bindung Werke:Satz auf eine Eigenschaft
<div data-bind="with: myData">
<button data-bind="text: myHeader"></button>
</div>
Aber ich will nicht verwenden, with
, weil es die HTML-Elemente (die button
in meinem Beispiel) jedes Mal myData
Änderungen neu erstellt, siehe http://knockoutjs.com/documentation/with-binding.html:
Wenn der Ausdruck Sie beobachtbaren Werte beinhaltet liefern, der Ausdruck wird w neu bewertet werden hegen Sie nie eine dieser Observablen ändern. Dann werden die untergeordneten Elemente gelöscht und eine neue Kopie des Markups wird Ihrem Dokument hinzugefügt und im Kontext des neuen Bewertungsergebnisses gebunden.
Also muss ich etwas Ähnliches wie with
Bindung, werfen wir einen context
sagen Bindung:
<div data-bind="context: myData">
<button data-bind="text: myHeader"></button>
</div>
<button>
nun dem myData
Kontext gebunden ist, so habe ich nicht schreiben:
<div>
<button data-bind="text: myData().myHeader"></button>
</div>
Dies wird auch in http://www.knockmeout.net/2012/03/knockoutjs-performance-gotcha-1ifwith.html
beschriebenDie mit Bindung ist sehr praktisch für die Bindung gegen verschachtelte Objekte/Modelle und hilft, Ihre Daten zu binden Attribute von werden zu ausführlich. Es ist jedoch wichtig zu verstehen, dass der mit Bindung den gesamten Abschnitt erneut rendert, wenn sich sein gebundener Wert ändert.
Gibt es so etwas in KO?