如何在 Ember 中绕过路线传递对象?

How to pass objects around routes in Ember?

假设我有 3 个相互嵌套的路由:

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

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

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

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

您可以在路线上使用 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'));
    }
});

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