我正在尝试在模板中添加 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/