Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Interactive data-driven views, MVVM and MVP, built on top of JsRender templates
JavaScript HTML CSS
Branch: master

Commit 65 (v1.0.0-beta.65 - Beta Candidate)


- The global namespace when JsRender is loaded without jQuery
  is now window.jsrender. (Previously it was window.jsviews).
  So when using JsRender without jQuery, you can write:
  var $ = jsrender; - and use the $ var it in the same way you
  would use the global $ when JsRender is loaded with jQuery:
  e.g. $.templates(...) or $.views.helpers(...) etc.

- AMD support has been improved and simplified. All AMD
  modules, including JsRender, with or without jQuery, now
  return the jQuery object (if loaded) or the analogous
  JsViews object.

- Node.js support and integration has been improved - along
  with improved CommonJS support, and Browserify integration.
  The file system APIs now use the syntax tmpl="./file/path.html".
  The Node.js version of jsrender.js is available as a separate
  file (available at //

  The Node.js version of JsRender provides the complete set of
  JsRender APIs and features, together with integration
  with NodeJS view-engines such as Express and Hapi, APIs
  for loading templates from the file system, etc.
  The file system APIs now use the syntax tmpl="./file/path.html".

  It also includes a built-in Browserify transform (see "Browserify
  Support: below).

  (Note: JsRender and JsViews will soon be published to NPM).

- The behavior when loading multiple instances of JsRender or
  JsViews files has been changed: When loading a new instance,
  the previous instance $.views, $.templates, etc. is no longer
  overwritten. So a component using JsRender or JsViews will not,
  when loaded, cause another already loaded component also using
  JsViews/JsRender to fail (except for collisions arising in the
  unlikely case where both happen to use the same
  template/converter/helper name).

  As part of this modified behavior, the noConflict support
  for JsRender had been removed.


- observeAll() for cyclic objects is now supported for the
  vast majority of cases.
  See #304

- Improved support for data-linking to data- attributes:
  <elem data-link="data-foo{:expr}" ...>.
  After data-linking, the value of the data-foo attribute
  will be expr.toString(), but $.data(element, "foo") and
  $(element).data("foo") will actually return the value of
  expr, even if of type object.
  See #306

- Browserify Support:
  JsRender on Node.js provides a built-in Browserify
  transform - jsrender.tmplify, for including compiled JsRender
  templates from the server, as part of the client javascript
  bundle generated by Browserify.

  Usage example:

  var $jsr = require('jsrender');

  browserify(...) ... .transform($jsr.tmplify) ...
  See also

- Initial work for deployment to Bower and NPM. See

Bug Fixes:

- BorisMoore/jsrender#263
  Caching of template on script elements. (Unit tests

- #304
  ObserveAll on cyclic objects

- #306
  'data-xxxx' attribute using data-link

- #307
latest commit 7b4a375927
@BorisMoore authored
Failed to load latest commit information.
demos Introduce end-of-line normalization
test Commit 65 (v1.0.0-beta.65 - Beta Candidate)
.gitattributes Introduce end-of-line normalization
.gitignore Commit 65 (v1.0.0-beta.65 - Beta Candidate)
.npmignore Commit 65 (v1.0.0-beta.65 - Beta Candidate)
MIT-LICENSE.txt Commit 62 (Beta Candidate) Commit 65 (v1.0.0-beta.65 - Beta Candidate)
bower.json Commit 65 (v1.0.0-beta.65 - Beta Candidate)
gulpfile.js Commit 65 (v1.0.0-beta.65 - Beta Candidate)
jquery.observable.js Commit 65 (v1.0.0-beta.65 - Beta Candidate)
jquery.observable.min.js Commit 65 (v1.0.0-beta.65 - Beta Candidate) Commit 65 (v1.0.0-beta.65 - Beta Candidate)
jquery.views.js Introduce end-of-line normalization
jquery.views.min.js Introduce end-of-line normalization Introduce end-of-line normalization
jsrender-node.js Commit 65 (v1.0.0-beta.65 - Beta Candidate)
jsrender-node.min.js Commit 65 (v1.0.0-beta.65 - Beta Candidate) Commit 65 (v1.0.0-beta.65 - Beta Candidate)
jsrender.js Introduce end-of-line normalization
jsrender.min.js Introduce end-of-line normalization Introduce end-of-line normalization
jsviews.js Commit 65 (v1.0.0-beta.65 - Beta Candidate)
jsviews.min.js Commit 65 (v1.0.0-beta.65 - Beta Candidate) Commit 65 (v1.0.0-beta.65 - Beta Candidate)
package.json Commit 65 (v1.0.0-beta.65 - Beta Candidate)

JsViews: Next-generation MVVM and MVP framework - bringing templates to life

The power of MVVM, the flexibility of JavaScript, the speed and ease of JsRender templates and jQuery

JsViews builds on top of JsRender templates, and adds data-binding and observable data, to provide a fully-fledged MVVM platform for easily creating interactive data-driven single page apps and websites.

JSRender and JsViews together provide the next-generation implementation of both JQuery Templates, and JQuery Data Link - and supersede those libraries.

See also the JsRender repository on GitHub

Documentation and Downloads

Documentation, downloads, samples are available on the website.
(JsViews and JsObservable API docs and tutorials are coming soon, as we move JsViews to the official beta and on to V1.0)


In addition to the demos at, see also the demos folder of this GitHub repository - available here as live samples.

Current Status

JsViews is now a beta candidate release, which will be declared beta as soon as API documentation is complete on the website, and then move to V1.0.

Something went wrong with that request. Please try again.