我正在尝试在模板中添加视图。此模板定义了一个名为NewAssetLinkView的视图。在里面我正在添加TracksView。 ember给出了例外:
未捕获错误:断言失败:Ember.CollectionView的内容必须实现Ember.Array。您传递了AssetLinksApp.NewAssetLinkController:ember538
似乎路由器正在尝试自动创建NewAssetLinksController并将其应用于TracksView,这是错误的。也许这样做是因为TracksView在NewAssetLinkView中声明了? (顺便说一下,NewAssetLinkController扩展了ObjectController)我有TracksView应该使用的TracksController - 如何让路由器不尝试自动创建并将错误的控制器与TracksView关联?
<script type="text/x-handlebars" data-template-name="new_asset_link_view">
.....
{{view AssetLinksApp.TracksView}}
</script>
答案 0 :(得分:5)
当您在模板内实例化视图时,新创建的视图将传递到创建它的视图的控制器。这非常有用,因为任何视图都可以访问controller
,并且不需要绑定parentView.controller
之类的内容。
但是,在您的情况下,您想使用其他控制器。因此,您可以使用{{view}}
帮助程序传递控制器绑定。
尝试使用
{{view AssetLinksApp.TracksView controller="AssetLinksApp.tracksController"}}