【问题标题】:why is ember automatically passing an incorrect controller to a view instance?为什么 ember 会自动将不正确的控制器传递给视图实例?
【发布时间】:2012-09-06 22:02:33
【问题描述】:

我正在尝试在模板中添加视图。此模板定义了一个名为 NewAssetLinkView 的视图。在其中我正在添加 TracksView。 ember 给出了例外:

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

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

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

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

【问题讨论】:

  • 在您的TracksView 中尝试使用controllerBinding

标签: ember.js


【解决方案1】:

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

但是,在您的情况下,您想使用不同的控制器。因此,您可以使用 {{view}} 帮助器传入控制器绑定。

尝试使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2012-01-27
    • 2017-08-08
    相关资源
    最近更新 更多