2番目のモデルをコンポーネントに渡そうとしています。私はカテゴリー別に並べられたいくつかの本を持っています。カテゴリは複数選択ボックスで選択され、カテゴリに(私のdbに格納されている)コンポーネントに渡す必要があります。私は配列を必要とするカテゴリを変更する必要はありません。どこにどのように私はそれらを要求し、それらを渡す、私はそのコンポーネントに店を注入したくない場合は? (多対多の関係を構築する方法はありません。書籍にはカテゴリの文字列配列しかありません)。複数のストアデータをEmberコンポーネントに渡す
冊/ route.js
model() {
this.store.findAll('book');
}
afterModel() {
this.set('categories', this.store.findAll('category');
}
冊/ template.hbs
{{#each books as |book|}}
{{book-details book=book categories=categories}}
{{/each}}
コンポーネント/書籍・ディテール/ template.hbs:
は今、私はこれを行うにしようとしています
<h2>{{book.title}}</h2>
{{#each categories as |category|}}
<p>{{category.name}}</p>
{{/each}}
このようなカテゴリでは機能しないので、店舗から取得してコンポーネントに渡す方法を見つける必要があります。
コンポーネントはモデルを持たず、プロパティのみを持ちます。あなたのルートに2つのモデルがある場合、最初のものと同じ方法で2番目のモデルを渡すことができます。しかし、コードなしでは、あなたが実際にやっていることを推測することは難しいです。 – Jeff
コントローラのカテゴリをルートではなく設定する必要があります。 '' 'setupController(コントローラ){ this._super(... arguments); this.store.findAll( 'category'、(categories)=> {controller.set( 'categories'}) } '' ' – jax