【问题标题】:How to pass objects around routes in Ember?如何在 Ember 中的路线周围传递对象?
【发布时间】:2016-01-02 17:42:04
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ember.js ember-router


    【解决方案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 属性。

    【讨论】:

    • findModel 方法在哪里定义,它有什么作用?
    • 这只是一个shortcut defined on the route。该调用相当于this.store.find('address', params.address_id)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多