2017-05-31 10 views
0

モデルが最初にロードされているページがありますが、同じルートへの後続のリンク先には正しく更新されません。私はEmberデータストアを使用しています。EmberモデルがfindAllで更新されない

たとえば、私のページは食品のリストです。私はフルーツ、野菜、肉などのナビゲーションを持っています。ユーザーがこれをクリックするとリンクがfoods.foodルートに送られます。

ユーザが最初に(果物)をクリックすると、モデルがテンプレート

{{#each model.foodItemsArr as |key|}} 
    ... 
{{/each}} 

私のHBSでその後、私のafterModel(食品、トランジション)

food.foodItemsArr = food.foodItems.filter((foodKey) => { 
    return (foodKey.get('foodName') === food.foodName); 
}); 

model(params) { 
    return RSVP.hash({ 
     foodName: params.foodName, 
     foodItems: this.store.findAll('food-items', {adapterOptions: {foodName: params.foodName}}) 
    }); 
} 

です食品の種類のリスト、それは必要な果物を読み込みます。その後、別のタイプ(野菜)をクリックすると、food.foodItemsArrの長さは0になります。次に、3番目の食品(肉)をクリックしてから野菜に戻ったら、野菜が表示されます。これは、データストアがafterModelが発生する前にモデルによって十分に速く更新されていないかのようです。私はチェックして、データはフィルタリングされ、各呼び出し時にサーバーによって適切に返されます。助けて!

+0

'model'はまったく呼び出されていない可能性があります。同じルートにリダイレクトするとき、またはリンクの仕方によっては、 'beforeModel'と' afterModel'だけを呼び出すことができます。 –

+0

モデルを呼び出すにはどうすればいいですか?更新中です、ちょうど遅く見えます... – user6041966

答えて

0

私は正しい方向に向いています。

Iは{リロード:真}を追加する必要 foodItemsに:this.store.findAll( '食品アイテム' は、{adapterOptions:{foodName:params.foodName}は、リロード:真})

にモデルを強制的にリロードします。

関連する問題