2

テンプレート内にビューを追加しようとしています。このテンプレートは、NewAssetLinkViewと呼ばれるビューを定義します。その中にTracksViewを追加しています。残り火は例外を与えます:

キャッチされないエラー:アサーションに失敗しました: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>
4

1 に答える 1

5

テンプレート内でビューをインスタンス化すると、新しく作成されたビューは、それを作成したビューのコントローラーに渡されます。これは、どのビューもアクセスできcontroller、のようなものへのバインドを必要としないため、非常に便利ですparentView.controller

ただし、あなたの場合、別のコントローラーを使用したいとします。{{view}}したがって、ヘルパーとのコントローラーバインディングを渡すことができます。

使ってみてください

{{view AssetLinksApp.TracksView controller="AssetLinksApp.tracksController"}}
于 2012-09-07T04:35:38.393 に答える