javascript - Ember.js - 如何在使用 ember-can 插件时获取能力源文件中的当前用户属性

标签 javascript ember.js ember-addon

如何获取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');
    })
});

最佳答案

根据official documentation :

注入(inject)用户

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

如果您使用 Ember.Service 作为 session ,则只需将其注入(inject)到功能中即可:

// 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 session 注入(inject)到能力类中。

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

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

能力类现在可以访问 session ,然后可以使用 session 来检查用户是否登录等...

关于javascript - Ember.js - 如何在使用 ember-can 插件时获取能力源文件中的当前用户属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41760374/

相关文章:

ember.js - Ember-models-table 插件在尝试使用 'routeName' 属性时抛出 ember 警告错误

javascript - 精确匹配字符串

javascript - Jquery - 使用 "this"获取属性

javascript - 修改json对象并更改mock数据

javascript - 在Js中使用循环查找具有特定值的数据的索引

javascript - Ember.JS 计算属性

javascript - 如何在 ember js 插件的 app.css 中添加 css 样式

javascript - Ember 全局 App 变量

javascript - 在 Ember RESTAdapter 中存储持久变量的正确方法是什么

ember.js - 添加到 Ember Addon 的路由