Ember-Turbolinks makes migrating your server-generated apps to Ember.js significantly easier by using techniques pioneered by the pjax and Rails' Turbolinks projects.
For example, if you're incrementally rewriting a server-generated application in Ember.js, you can now let Ember actually take over all of the routing of your application even though only parts of it have been rewritten in Ember. Typically the ROI of admin or setting page rewrites is very low, so Ember-Turbolinks offers a nice mechanism for boosting the performance of those areas of the application and let's you take advantage of nice features of Ember such as automatic loading substates and liquid-fire based animations.
ember install:addon ember-turbolinks
Inside your app/router.js
, turboify your server-generated web application by configuring the routes you want loaded by Ember:
Router.map(function() {
// <route name> <server url> <optional parameters>
this.turboify('settings', '/legacy/settings', { selector: '#content', path: '/admin/settings' });
});
Now you can link-to
your turboified routes within your Ember application like any other route:
{{#link-to 'settings'}}Settings{{/link-to}}
Note: Ember-Turbolinks does not hijack existing <a>
tags on your page. You're explicitly opting in to which links become routed client side.
Standard HTML forms with method="POST"
will be automagically enhanced to submit via AJAX.
The csrf-token
and csrf-param
fields will automatically be injected into the Ember app for you. If you're relying upon Rails' unobstrusive JS generated by it's link_to helper, that will also be automagically upgraded to submit via AJAX as well.