knockout.js
Ekvivalenter av AngularJS-bindningar
Sök…
Anmärkningar
Inte allt i AngularJS har en KnockoutJS-ekvivalent (till exempel ngCloack
eller ngSrc
). Det finns två huvudsakliga lösningar:
- Använd i stället den generiska
attr
ellerevent
. - I likhet med anpassade direktiv i AngularJS kan du skriva din egen anpassade bindande hanterare om du behöver något som inte ingår i basbiblioteket.
Om du föredrar AngularJS bindande syntax kan du överväga att använda Knockout.Punches som möjliggör bindning i styrstilen.
ngShow
AngularJS-kod för att dynamiskt visa / dölja ett element:
<p ng-show="SomeScopeProperty">This is conditionally shown.</p>
KnockoutJS motsvarande:
<p data-bind="visible: SomeScopeObservable">This is conditionally shown.</p>
ngBind (lockig markering)
AngularJS-kod för rendering av vanlig text:
<p>{{ ScopePropertyX }} and {{ ScopePropertyY }}</p>
KnockoutJS motsvarande:
<p>
<!-- ko text: ScopeObservableX --><!-- /ko -->
and
<!-- ko text: ScopeObservableY --><!-- /ko -->
</p>
eller:
<p>
<span data-bind="text: ScopeObservableX"></span>
and
<span data-bind="text: ScopeObservableY"></span>
</p>
ngModel på input [typ = text]
AngularJS-kod för tvåvägsbindning på en input
:
<input ng-model="ScopePropertyX" type="text" />
KnockoutJS motsvarande:
<input data-bind="textInput: ScopeObservableX" type="text" />
ngHide
Det finns ingen direkt motsvarande bindning i KnockoutJS. Men eftersom gömmer är precis motsatsen till att visa, kan vi bara invertera exemplet för Knockouts ngShow
ekvivalent .
<p ng-hide="SomeScopeProperty">This is conditionally shown.</p>
KnockoutJS motsvarande:
<p data-bind="visible: !SomeScopeObservable()">This is conditionally hidden.</p>
Ovanstående KnockoutJS-exempel antar att SomeScopeObservable
är ett observerbart, och eftersom vi använder det i ett uttryck (på grund av !
Operatören framför det) kan vi inte utelämna ()
i slutet.
ngClass
AngularJS-kod för dynamiska klasser:
<p ng-class="{ highlighted: scopeVariableX, 'has-error': scopeVariableY }">Text.</p>
KnockoutJS motsvarande:
<p data-bind="css: { highlighted: scopeObservableX, 'has-error': scopeObservableY }">Text.</p>