gpt4 book ai didi

ember.js - 仅当未在初始页面上显示时,“无法找到 View ”

转载 作者:行者123 更新时间:2023-12-02 06:00:42 25 4
gpt4 key购买 nike

我有一个Ember.js应用程序,有一个很奇怪的问题。

如果我通过Ember的路由器导航到该页面,则该页面会中断,但是如果直接加载该页面则不会。在这种情况下,buy/credit_card/index
如果我直接在浏览器中加载http://localdev/#/buy/credit_card,则该页面可以正常运行。

如果我在浏览器中加载http://localdev/,然后单击几个链接,这些链接将带我快速进入#/buy/credit_card,则会收到以下错误消息:

Assertion failed: Unable to find view at path 'App.OrderCalculatorView'
Assertion failed: You must pass a view to the #view helper, not App.OrderCalculatorView ()
Uncaught TypeError: Cannot read property 'proto' of undefined



有关 View 的模板(的相关部分)如下所示:
<h3>Pay order with credit card</h3>

<p>Description here</p>

<form>
{{log App.OrderCalculatorView}}
{{view App.OrderCalculatorView}}

<label>

失败时, {{log App.OrderCalculatorView}}返回undefined。
App.OrderCalculatorView的定义与应用程序的其余部分位于同一文件中,并放置在路由器之前–看起来像这样:
App.OrderCalculatorView = Ember.View.create({
templateName: 'order/calculator',
});

该应用程序的所有JavaScript代码都在同一个 app.js文件中,所有模板都在 index.html文件中,并且它们均作为静态文件(在这种情况下为nginx)提供,因此 undefined View 是没有意义的在某些情况下而不是其他情况下。在任何情况下 Ember.View.create()可能会返回 undefined吗?或还有什么可以解释这种行为?

最佳答案

您应该在 View 中使用extend而不是create,ember会在渲染时创建一个实例,并且在从DOM中删除时也会破坏该实例。换句话说,ember将负责 View 的生命周期。

所以试试这个:

App.OrderCalculatorView = Ember.View.extend({
templateName: 'order/calculator',
});

希望能帮助到你。

关于ember.js - 仅当未在初始页面上显示时,“无法找到 View ”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18170621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com