【问题标题】:Ember App Kit: Cannot find viewClass for template outletEmber App Kit:找不到模板出口的视图类
【发布时间】:2014-03-28 08:35:45
【问题描述】:

我有我的application.hbs 模板,我在其中声明了几个{{outlet}}s(命名和未命名)和一个具有指定viewClass 属性的:

application.hbs

{{outlet 'modal'}}
{{outlet 'notification'}}
<h1>EAK Application</h1>
{{#view 'application/content'}}
  {{!some HTML markup, etc. }}

  {{outlet viewClass='application/content-container'}}
{{/view}}

我的视图文件放在

app/views/application/content.js
app/views/application/content-container.js

但 Ember App Kit 找不到 content-container 视图!

未捕获的错误:断言失败:无法在路径中找到视图 '视图/应用程序/内容容器'

我做错了吗?

编辑


同时我做了简单的解决方法,并称之为

{{#view 'application/content-container'}}
  {{outlet}}
{{/view}}

但这给了我一个额外的&lt;div&gt; 层并且“不那么优雅”恕我直言......

【问题讨论】:

    标签: ember.js handlebars.js ember-app-kit


    【解决方案1】:

    当前的 Ember API 参考 (http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#method_outlet) 说插座上的属性应该是 view 而不是 viewClass

    {{#view 'application/content'}}
      {{!some HTML markup, etc. }}
    
      {{outlet view='application/content-container'}}
    {{/view}}
    

    如果不完全了解您构建的应用程序,我无法提出具体建议,但如果您想利用深层链接 URL,则应尽可能使用路由将模板/视图分配给 outlet。

    例如,您的 IndexRoute 将需要一个 IndexTemplate 和一个 IndexView(或将在幕后创建一个)。在 Ember App Kit 中,它们将位于 app/views/index.jsapp/templates/index.hbs。查看 Ember 网站上的 Rendering a Template 指南:http://emberjs.com/guides/routing/rendering-a-template/

    您也可以使用视图助手,例如:

    {{view 'my-view'}}

    不同于普通的 Ember view helper,视图助手需要实际的类。在 Ember App Kit 中,它是基于文件名和来自 app/views 根目录的视图路径的文件路径。

    【讨论】:

    • 非常感谢您的回答 - 我熟悉模板渲染和整体代码结构。这是/曾经是 Ember.js 应用程序中的工作代码,但现在,当我正在迁移此应用程序以使用 Ember App Kit 时,它失败了。我在{{outlet}} 中使用viewClass,这样我就不会在我的HTML 标记中生成另一个未使用/不需要的&lt;div&gt; 层:)
    • 再次,我不熟悉 viewClass 作为可用属性。它也没有真正出现在任何谷歌搜索中。嵌套在 EmberJS API 文档中的是对“视图”属性的引用,但不是 viewClass:emberjs.com/api/classes/…。我也不确定额外的 div 来自哪里。您能否更新您的答案以包含 hbs 模板的内容,或者创建 jsbin 工作示例。
    • ahhhh @AaronStorck ...我对你提到的view属性视而不见-似乎我的viewClass属性是以前版本的一些祖先(或类似的东西......) .像预期的那样与view 一起工作,谢谢!您会考虑在回答中提及这个“解决方案”以便我接受吗?
    • 我已经更新了答案,以便更准确地提供您问题的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多