Ember.js: 公共属性放在哪里?
Ember.js: Where to put common properties?
我听说,有一天控制器会被弃用。所以我试图对所有东西都使用组件。
但是如果你要在整个应用程序中使用一些计算属性,你会在哪里实现它?
一般来说,我会使用一个应用程序控制器并将其放入其中。
最佳做法是什么?
您将建立一个服务并将其注入到任何需要的地方。
除非你说你有需要修饰多个不同模型的通用计算属性,否则你会使用混合。
我认为服务就是您要找的。
查看以下内容:
http://www.hutchinson.io/ember-services-and-dependency-injection/
以下是我如何使用服务来存储应用程序配置(用户 permissions/roles、默认值等):
/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
};
然后我像这样在控制器和路由中访问:
export default Ember.Controller.extend({
allRoles: function() {
return this.configuration.roles;
}).property();
我听说,有一天控制器会被弃用。所以我试图对所有东西都使用组件。
但是如果你要在整个应用程序中使用一些计算属性,你会在哪里实现它?
一般来说,我会使用一个应用程序控制器并将其放入其中。
最佳做法是什么?
您将建立一个服务并将其注入到任何需要的地方。
除非你说你有需要修饰多个不同模型的通用计算属性,否则你会使用混合。
我认为服务就是您要找的。
查看以下内容:
http://www.hutchinson.io/ember-services-and-dependency-injection/
以下是我如何使用服务来存储应用程序配置(用户 permissions/roles、默认值等):
/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
};
然后我像这样在控制器和路由中访问:
export default Ember.Controller.extend({
allRoles: function() {
return this.configuration.roles;
}).property();