从模板中的服务访问属性

时间:2015-12-01 16:16:42

标签: ember.js service properties

我有一个管理从localstorage读取数据的用户服务,它有一个属性,从本地存储中读取某个对象属性,该服务设置如此

import Ember from 'ember';
import LocalUser from 'bidr/models/user-local';

const {
  computed: {
    alias
  }
} = Ember;

export default Ember.Service.extend({
  localUser: LocalUser.create(),
  user_id: alias('localUser.user.id'),
  active_auction: alias('localUser.user.active_auction')
});

在我的item路由的route.js文件中,我注入了这样的服务

user: Ember.inject.service('user'),

在模板中,我试图像这样访问它

{{user.active_auction}}

我的印象是我能做到的但不是这样吗?我是否需要在item路由上设置一个等于service属性的属性才能使其工作?

1 个答案:

答案 0 :(得分:0)

如果您不想为此模板的范围创建控制器,可以通过路由的setupController挂钩在自动生成的控制器中设置属性,将服务公开给模板,如下所示: / p>

// application/some-route.js

export default Route.extend({
    user: service(),

    setupController(controller, model) {
        this._super(controller, model);
        set(controller, 'user', get(this, user))
    }
});