EmberJS:从另一个(非嵌套)控制器加载模型

时间:2014-05-23 04:34:37

标签: ember.js ember-data

我有一个Message模型,其设置如下:

App.Message = DS.Model.extend({
    subject   : DS.attr( 'string' ),
    message   : DS.attr( 'string' ),
    deletedBy : DS.attr(),
    createdAt : DS.attr( 'string' ),

    sender     : DS.belongsTo( 'user', {embedded : false, key : 'sender'} ),
    recipient  : DS.belongsTo( 'user', {embedded : false, key : 'recipient'} )
});

在我的InboxController中,我已经与UsersController建立了依赖关系。但是,当我直接加载收件箱路由时,它没有加载UsersController模型(它没有嵌套)。什么是让它发挥作用的最合适方式?

InboxController:

App.InboxController = Ember.ArrayController.extend({
    needs: ['users'],
    itemController: 'inboxItem',
    ...
});

更新

示例小提琴:http://jsfiddle.net/9asHJ/2/

1 个答案:

答案 0 :(得分:1)

当您需要一个控制器到另一个控制器时,您可以使用needs并通过UsersController

访问this.get('controllers.users.something')

Docs

Sample Fiddle

但是,您需要将一些控制器或模型注入所有控制器或路由或其他东西,您可以在应用程序初始化期间执行依赖注入。

Refer docs