Earlier today I published the final 1.2.0 build of knockout.js . This is a big release with stacks of new goodness since 1.1.2:

Changed the license to MIT (more permissive than the previous license, MS-PL)

Added useful new bindings: event, attr, html

Enhanced some existing bindings: options, checked

Enhanced templating features (now supports jquery.tmpl 1.0.0pre as well as previous versions, template polymorphism, passing additional data via options)

Various performance improvements (e.g., now precompiles and caches templates, and ensures all data/subscriptions associated with DOM elements are cleaned immediately when those elements are removed) plus bugfixes

Better compilation style (ensures Closure Compiler no longer adds any extra variables to global namespace)

Various new extensibility points requested by plugin authors

Minor syntactical improvements (e.g., added zero-arg constructor for observable arrays)

All documentation updated to match 1.2.0

Thanks very much to the many people who have contributed ideas, pull requests, bug reports, and support to make this release possible! I’m really enjoying the community that’s growing around this.

Hang on, what’s Knockout.js?

In case you’ve never heard of it, here’s tekmaven’s explaination:

(By the way, for Visual Studio developers: Install-Package knockoutjs)

More specifically, Knockout is a JavaScript library for building rich, responsive user interfaces. It uses automatic dependency tracking and declarative bindings to update your UI whenever your data model changes, letting you cleanly structure your code around the MVVM pattern.

No, that’s just marketing blather… show me something real

OK then, to learn more: