0

如何在Ember-can插件的能力源文件中获取用户对象。这就是我的能力文件的样子。

import Ember from 'ember';
import { Ability } from 'ember-can';

export default Ability.extend({
    canWrite: Ember.computed('user.isAdmin', function() {
       return this.get('user.isAdmin');
    })
});
4

1 回答 1

2

根据官方文档

注入用户

异能怎么知道谁登录了?这取决于您如何在应用程序中实现它!

如果您使用 anEmber.Service作为会话,则可以将其注入到功能中:

// app/abilities/foo.js
import Ember from 'ember';
import { Ability } from 'ember-can';

export default Ability.extend({
  session: Ember.inject.service()
});

如果您使用的是 ember-simple-auth,您可能希望将会话注入simple-auth-session:main到能力类中。

为此,请添加一个初始化器,如下所示:

// app/initializers/inject-session-into-abilities.js
export default {
  name: 'inject-session-into-abilities',
  initialize(app) {
    app.inject('ability', 'session', 'simple-auth-session:main');
  }
};

能力类现在可以访问会话,然后可以使用该会话检查用户是否已登录等...

于 2017-01-20T10:02:45.653 回答