2017-05-24 52 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'鉤越來越當我過渡到它,以便記錄陣列將永遠不會被更新,重新運行。 –