如何在Ember路线周围传递物体?

时间:2016-01-02 17:42:04

标签: ember.js ember-router

假设我有3条路线互相嵌套:

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

在这种情况下,/address路由需要user路由所具有的/:id对象。

它不需要从服务器获取它,因为/:id路由已经获取它。它只需要指向该对象的指针。

如何将/:id获得的对象传递给/address路线?

1 个答案:

答案 0 :(得分: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'));
    }
});

现在,您的控制器可以访问modeladdress属性,而不仅仅是user属性。