2017-05-24 17 views
1

私は、モーダルダイアログで新しいオブジェクトを作成することを可能にする多くのオブジェクトと子ルートをリストした親ルートを持っています。以下のような何か:子ルートで新しいレコードを作成するときに親ルートのモデルを更新していますか?

// Parent route (app.colours) 
export default Ember.Route.extend({ 
    model() { 
     return this.store.findAll('colour'); 
    }, 
} 

と、新しいオブジェクトを追加することができます子供のルート:

// Child route (app.colours.create) 
export default Route.extend({ 
    model() { 
     return this.store.createRecord('colour'); 
    }, 
    actions: { 
     save(colour) { 
      color.save().then(() => this.transitionTo('app.colours')); 
     } 
    } 

私はときに私が正常に戻って親ルート、新しいに新しいcolour記録やトランジションを作成することに注意してください親ルートのモデルがリフレッシュされていないため、レコードはリストにありません。

子経路からモデルを更新する親経路をどのように伝えることができますか?

答えて

1

レスキューへの対応。私はそれが親を送信することで、アクションを作業だ:

// Parent route (app.colours) 
export default Ember.Route.extend({ 
    model() { 
     return this.store.findAll('colour'); 
    }, 
    actions: { 
     refreshModel() { 
      this.refresh(); 
     } 
    } 
} 

// Child route (app.colours.create) 
export default Route.extend({ 
    model() { 
     return this.store.createRecord('colour'); 
    }, 
    actions: { 
     save(colour) { 
      color 
       .save() 
       .then(() => { 
        this.send('refreshModel'); 
        this.transitionTo('app.colours')); 
       } 
     } 
    } 
} 
+0

を親ルートモデルが自動的に更新されなければならないようにfindAllのは、ライブレコードの配列を返します。 – kumkanillam

+0

親ルートであるため、 'beforeModel'、' model'、 'afterModel'フックは、レコード配列が決して更新されないように、私がそれに移行するときに再実行されているのかどうか分かりません。 –

関連する問題