2015-11-03 84 views
1

我無法再設置一個包含多個模型散列的路線。我用做的是:setupController不再適用於Ember路線

import Ember from 'ember'; 

export default Ember.Route.extend({ 

    model() { 
    return Ember.RSVP.hash({ 
     products: this.store.findAll('product'), 
     suppliers: this.store.findAll('supplier') 
    }); 
    }, 
    setupController(controller, model) { 
    controller.set('products', model.products); 
    controller.set('suppliers', model.suppliers); 
    } 

}); 

當我做到這一點我不能循環遍歷每個{{#each products}}但我仍然可以{{#each model.products}}

+0

setupController中的console.log(model)是什麼打印? –

+0

不確定您是否注意到,但此信息對於解決您的問題至關重要。 –

+0

如果我在setupController方法中使用console.log(model),我可以獲得完整的模型屬性,包括產品和供應商。 – WebDevDude

回答

1

對象代理已過時,所以你應該參考您的機型一個model.前綴。

這樣做的正確方法是省去您的setupController並將該模型用作其上的.products.suppliers鍵的對象。

你還是要{{#each model.products as |product|}}除非你想別名他們在你的控制器是這樣的:

products: Ember.computed.alias("model.products") 

我建議你在你的模板與model.products堅持,雖然,以減輕任何混亂中具有特定數據來自於。刪除它意味着它的控制器相關與在路線的model鉤子中獲取的模型數據相關。

編輯:上述解決方案在Ember 1.13.5中完成,並且應該也可以在任何2.x版本中工作。