我有一个 Ember.js 应用程序有一个相当奇怪的问题。
如果我通过 Ember 的路由器导航到它,我有一个页面会中断,但如果直接加载则不会。在这种情况下,buy/credit_card/index
http://localdev/#/buy/credit_card
如果我直接在浏览器中加载,页面可以正常工作。
如果我在浏览器中加载http://localdev/
,然后单击几个链接#/buy/credit_card
,我会很快转到这些链接,我会收到以下错误消息:
断言失败:无法在路径“App.OrderCalculatorView”处找到视图
断言失败:您必须将视图传递给#view helper,而不是 App.OrderCalculatorView ()
Uncaught TypeError: Cannot read property 'proto' of undefined
(相关部分)相关视图的模板如下所示:
<h3>Pay order with credit card</h3>
<p>Description here</p>
<form>
{{log App.OrderCalculatorView}}
{{view App.OrderCalculatorView}}
<label>
{{log App.OrderCalculatorView}}
失败时返回未定义。
的定义App.OrderCalculatorView
与应用程序的其余部分在同一个文件中,并放在路由器之前 - 它看起来像这样:
App.OrderCalculatorView = Ember.View.create({
templateName: 'order/calculator',
});
应用程序的所有 JavaScript 代码都在同一个app.js
文件中,所有模板都在index.html
文件中,并且它们作为静态文件提供(在本例中由 nginx 提供),因此在某些情况下未定义视图是没有意义的在其他情况下,而不是在其他情况下。有没有Ember.View.create()
可能返回的情况undefined
?或者还有什么可以解释这种行为?