KnockoutJS

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 
 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 

Š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) 

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

Skata Modelis (JavaScript) 

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());
JavaScript
Nepabeigti raksti par informācijas tehnoloģijām