store
データをロードする最も適切なライフサイクルは、どのライフサイクルがEmber.Component
ですか?Emberコンポーネントがストアデータをロードする
データを非同期でロードしています。だから私は実際のデータをroute
からロードしていないのですが、そのメタデータは?
たとえば、著者のname
に基づいた書籍のリストと、publisher
のリストがロードされています。 (これは単なるイラストです)。
著者のリストと出版社のリストがあります。
コード:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return Ember.RSVP.hash({
authors: this.store.findAll('author'),
publishers: this.store.findAll('publisher')
});
}
})
route
からauthors
とpublishers
を取得した後、今、私たちは本を得るために、すなわちthis.store.find('book', {author, publisher})
を別のクエリを行うことができます。
Ember.Componentのどのライフサイクルが非同期的にこのようなデータをフェッチするのが適切かを尋ねたがっています。
更新:
この問題は、次の3通りの方法でロードロジックを置くことによって解決することができます:route
内部setupController
で
。コンポーネントのライフサイクルの
route
の
model()
フックで。
考察(同僚との読書と議論)の後、コンポーネントは論理を考慮する必要があります。下の私の答えを見てください。
参考資料はありますか?私は 'didInsertElement'がおそらく[サードパーティのライブラリと統合する]ことを知っていましたが、人々が' didInsertElement'フックでデータを読み込むのを見ました(https://guides.emberjs.com/v2.6.0/components/the-component-lifecycle/ )。ありがとうございました。 –
それはあなたのために働いたアラン?できるだけ早くデータの要求を開始する必要があります。 – kiwiupover
これはデータを収集する "Ember Way"ではないので、これは文書化されていません。エバーの方法は、ルート内のデータを取得し、それをコンポーネントに渡すことです。 – kiwiupover