KnockoutJS

Vikipēdijas lapa

Knockout.js ir JavaScript bibliotēka, kas realizē Model-View-ViewModel arhitektūru.

Knockout izstrādāja Microsoft darbinieks Stīvs Sandersons (Steve Sanderson). Tas tika izstrādāts un tiek uzturēts kā atvērtā pirmkoda projekts.

Īpatnības[labot šo sadaļu | labot pirmkodu]

  • Deklaratīvā sasaiste
  • Mainoties datu modeļa stāvoklim notiek automātiska saskarnes atjaunošana
  • Atkarību izsekošana
  • Šablonu izmantošana (ir iespēja izmantot gan iebūvēto šablonu mehānismu, gan citus šablonu mehānismus, piemēram, tādu kā jquery.tmpl)

Vienkāršs piemērs[labot šo sadaļu | labot pirmkodu]

Šajā piemērā divi ievades lauki ir piesaistīti datu modeļa novērojamajiem mainīgajiem (kodā katrs šāds mainīgais tiek definēts kā 'observable'). Savukārt pilnais vārds ("full name") ir piesaistīts atkarīgakam mainīgajam (angļu valodā — dependent observable, bet kodā — computed observable) un tā vērtība tiek izrēķināta. Tiklīdz ievades lauki tiek rediģēti, pilnais vārds automātiski mainās un tam nav nepieciešams pieasitīt paildus notikumu apstrādi.

Skats (HTML)[labot šo sadaļu | labot pirmkodu]

<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>

Skata Modelis (JavaScript)[labot šo sadaļu | labot pirmkodu]

function ViewModel() {
    this.firstName = ko.observable("Joe");
    this.lastName = ko.observable("Bloggs");

    this.fullName = ko.computed(function() {
        return this.firstName() + " " + this.lastName();
    }, this);
}

ko.applyBindings(new ViewModel());