Knockout is an elegant solution for binding a pure view model to a view. However, its current templating system has several problems:
- Templates are second-class citizens. Placing the template inside a script element breaks the great highlighting, intellisense and validation abilities of IDEs.
- jQuery.templ is based on string manipulation and does not enforce well-nested HTML. This can cause validation issues that do not appear until runtime.
- jQuery.templ encourages the use of the {{ }} syntax, but this syntax circumvents Knockout's dependency analysis.
- jQuery.templ adds a dependency on the jQuery library. While many developers will be using jQuery already, it adds unnecessary overhead if they prefer to use a different library.