Knockout – JavaScriptová UI knihovna
Nálepky:
Steve Sanderson na svém blogu oznámil uvedení nové JavaScriptové knihovny Knockout, která zajišťuje především synchronizaci mezi uživatelským rozhraním (klasické tagy select, input, …) a view-modelem (JavaScriptový objekt), jehož stav vizualizuje. Knihovna je navržena ve stylu návrhového vzoru Model-View-ViewModel, který se osvědčil např. v Silverlightu.
Na straně uživatelského rozhraní se pro odekorování jeho prvků používají atributy data-* (především data-bind; součást specifikace HTML5), které fungují v drtivé většině prohlížečů (včetně IE6). Sledovat změny u prvků uživatelskému rozhraní není problém – prostě se využijí standardní eventy. Na straně view-modelu to již není tak jednoduché. V Knockoutu je to vyřešeno tak, že view-model neobsahuje v properties přímo jeho hodnoty, ale sledovatelné hodnoty – ko.observable(prirazovana_hodnota) a ko.observableArray(prirazovana_kolekce).
Součástí takového systému také musí být nějaký šablonový systém. V Knockoutu se defaultně používá syntaxe jquery-tmpl, ale lze použít libovolný templatovací systém (Knouckout je v tomto směru flexibilní a lze jej rozšířit pomocí pluginů).