ember.js - 为什么 ember 自动将错误的 Controller 传递给 View 实例?

标签 ember.js

我正在尝试在模板中添加 View 。该模板定义了一个名为 NewAssetLinkView 的 View 。我在其中添加了 TracksView。 ember 给出了异常(exception):

未捕获错误:断言失败:Ember.CollectionView 的内容必须实现 Ember.Array。您传递了 AssetLinksApp.NewAssetLinkController:ember538

路由器似乎试图自动创建 NewAssetLinksController 并将其应用到 TracksView,这是错误的。也许这样做是因为 TracksView 是在 NewAssetLinkView 内声明的? (顺便说一句,NewAssetLinkController 扩展了 ObjectController)

我有一个 TracksView 应该使用的 TracksController - 我怎样才能让路由器不尝试自动创建错误的 Controller 并将其与 TracksView 关联?

<script type="text/x-handlebars" data-template-name="new_asset_link_view">
    .....
    {{view AssetLinksApp.TracksView}}
</script>

最佳答案

当您在模板内实例化 View 时,新创建的 View 将传递给创建它的 View 的 Controller 。这非常有用,因为任何 View 都可以访问 controller 并且不需要绑定(bind)到 parentView.controller 之类的东西。

但是,在您的情况下,您想使用不同的 Controller 。因此,您可以传入带有 {{view}} 帮助器的 Controller 绑定(bind)。

尝试使用

{{view AssetLinksApp.TracksView controller="AssetLinksApp.tracksController"}}

关于ember.js - 为什么 ember 自动将错误的 Controller 传递给 View 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309056/

相关文章:

validation - 使用 Ember Data 处理服务器端验证

view - ember js subview 和 didinsertelement 事件

javascript - Ember 数据 "Assertion Failed: Error: Assertion Failed: The response from a findAll must be an Array, not undefined"

javascript - 基于模型类型的 ember 组件

javascript - 将 Node 模块添加到 ember CLI 应用程序

javascript - 在 ember app chrome beta 版本中 - 无法在资源的 'integrity' 属性中找到有效的摘要

javascript - 无法创建新记录

html - 如何禁用 Ember.js 选择菜单中的第一个选项

ember.js - 如何将 Ember 数据中的模型 URL(例如/comment)更改为嵌套 URL(如/posts/38/comment)?

azure - 如何将 Ember CLI 应用程序部署到 Azure 网站