我通过ember-cli实现了ember.js hashbang。所以在我的app / initializer文件夹中,我有一个application.js,其中包含上一个问题的解决方案: Hashbang URLs using Ember.js
当我运行代码时,它运行良好,但当我转到另一条路线时,我得到:
Uncaught ReferenceError: set is not defined
但是当我刷新页面时,它会加载得很好,直到我尝试去另一条路线。
SO
example.com /#!/
将加载
example.com /#!/ nextRoute
我获得了转换#1:TRANSITION COMPLETE。但页面上没有任何渲染
答案 0 :(得分:1)
听到问题是set
未定义,您可能不会感到惊讶。
在您链接到的HashBangLocation
的原始实现中,顶部有一行
var get = Ember.get, set = Ember.set;
在初始化程序中重新实现时,我看不到这一行。 JSHint可能会为您找到此错误。如果您查看已编译的代码,则无法看到set
的定义。
要解决此问题,请将var get = Ember.get, set = Ember.set
行添加回代码,或改为使用self.set('lastSetURL', null);
。
如果没有set
,那么get
是如何运作的呢?事实证明,Ember有一个错误。在源代码中的某一点,get
在全局范围内声明。