Ember.js与Rails4:浏览器后退按钮崩溃ember应用程序

时间:2013-08-09 08:00:56

标签: ember.js ruby-on-rails-4 turbolinks ember-rails

编辑:问题解决了。您只需要删除 turbolinks 即可。

使用 Rails4 应用程序使用 ember-rails 0.13.0 ,我们遇到无法使用浏览器后退按钮的问题。每次使用后退按钮返回上一个路径时,应用程序都会因此类错误而崩溃:

Firefox 24.0a2上的

TypeError: Class.PrototypeMixin.applyPartial is not a function @ http://localhost:3000/assets/ember.js?body=1:11933

on Chromium 28:

Uncaught Error: jquery-ujs has already been loaded! jquery.js?body=1:517I 
DEBUG: ------------------------------- ember.js?body=1:364
DEBUG: Ember.VERSION : 1.0.0-rc.6.1 ember.js?body=1:364
DEBUG: Handlebars.VERSION : 1.0.0 ember.js?body=1:364
DEBUG: jQuery.VERSION : 1.10.2 ember.js?body=1:364
DEBUG: ------------------------------- 

看起来整个应用程序堆栈再次加载,结束时没有功能代码库。无论如何,相同的应用程序与 Rails3 完美配合。

其他人与 ember.js 以及 turbolinks 一起出现问题的报告:

Cannot perform operations on a Metamorph that is not in the DOM

1 个答案:

答案 0 :(得分:7)

经过一些调试后,我们发现那些 turbolinks 导致了问题。使用backbutton触发了 turbolinks ,这会对ember.js应用程序造成奇怪的影响,比如重新加载所有javascripts,从而覆盖app的状态。

删除 turbolinks 完成了这项工作。以下是一个有用的链接:http://blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4