Ember.js:在哪里放置公共(public)属性?

标签 ember.js ember-cli

我听说,有一天 Controller 会被弃用。所以我试图对所有事情都使用组件。

但是如果您要在整个应用程序中使用一些计算属性,您会在哪里实现它?

一般来说,我会使用应用程序 Controller 并将其放入其中。

什么是最佳实践?

最佳答案

我认为服务就是您要找的。

请看以下内容:

http://www.hutchinson.io/ember-services-and-dependency-injection/

下面是我如何使用服务来存储应用程序配置(用户权限/角色、默认值等):

/app/services/configuration.js

import Ember from 'ember';

export default Ember.Service.extend({
    roles: ['Administrator', 'Manager', 'User', 'View-only'],
    // ...
});

/app/initializers/configuration-service.js

export function initialize(container, application) {
    application.inject('route', 'configuration', 'service:configuration');
    application.inject('controller', 'configuration', 'service:configuration');
}

export default {
    name: 'configuration-service',
    initialize: initialize
};

然后我像这样在 Controller 和路由中访问:

export default Ember.Controller.extend({
    allRoles: function() {
        return this.configuration.roles;
}).property();

关于Ember.js:在哪里放置公共(public)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309427/

相关文章:

node.js - 了解哪些依赖键导致了计算属性的更改

javascript - Ember Controller 和 "virtual"和/或 "abstract"方法?

symfony - 如何使用 Symfony 运行 ember-cli?

插件中的 ember-cli@0.2.0 组件模板

node.js - Ember : The response to store. 查询应该是一个数组,但它是一条记录错误

ember.js - 从相关的 "belongs to"路由创建一条记录。断言失败: Assertion Failed: You can only add a 'group' record to this relationship

javascript - 在 Emberjs 中删除记录

ajax - 无法在 ember 中使用 pushPayload

nginx - Ember CLI 通过 Lighting Strategy 部署

javascript - 按属性按优先级排序