我听说,有一天 Controller 会被弃用。所以我试图对所有事情都使用组件。
但是如果您要在整个应用程序中使用一些计算属性,您会在哪里实现它?
一般来说,我会使用应用程序 Controller 并将其放入其中。
什么是最佳实践?
最佳答案
我认为服务就是您要找的。p>
请看以下内容:
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/