2016-01-02 26 views
0

可以說我有3條路線相互嵌套:如何在Ember中傳遞路線的對象?

/users - shows UserList 
    - /:id - shows UserDetail 
    - /address - shows the 'Address' tab of a 'user' object 

在這種情況下,路線/address需要user對象/:id路由具有。

由於/:id路由已經獲取它,它不需要從服務器獲取它。它只需要指向該對象的指針。

如何將/:id獲得的對象傳遞給/address路由?

回答

1

您可以在您的路線上使用modelFor方法。例如,您address路由看起來是這樣的:

export default Ember.Route.extend({ 
    model(params, transition) { 
     return this.findModel('address', params.address_id); 
    } 

    setupController(controller, model) { 
     controller.set('address', model); 
     controller.set('user', this.modelFor('users.id')); 
    } 
}); 

,現在不僅一model財產,你現在控制器訪問addressuser性能。

+0

其中是定義了'findModel'方法,它有什麼作用? – pdeva

+0

這只是[在路由上定義的快捷方式](http://emberjs.com/api/classes/Ember.Route.html#method_findModel)。該調用等同於'this.store.find('address',params.address_id)'。 – GJK