如何在 ember 中创建枚举服务

How to create an enums service in ember

我想在 ember 中创建一个枚举服务,这样我只需要注入它就可以在任何地方使用它。有什么好办法吗? 谢谢

哦,我找到了解决办法。 我做对了,但 ember 发球不是那么聪明..

步骤:

  1. 只需使用:ember g 服务枚举
  2. 并添加一个初始化器:ember g initializer enums
  3. 在新创建的枚举初始化器中,放入 export default { name: 'titleService', initialize: function(application) { application.inject('route', 'enums', 'service:enums'); } };
  4. 重新启动 ember 服务器,您将获得枚举服务

我认为这也可行,在您的服务代码中添加 Enumerable mixin

export default Ember.Service.extend(Ember.Enumerable, {
  length: // ...
  nextOjbect: // ..
  next: // ...
  value: // ...
}

根据文档,您需要实现 nextObject() 和 length。 Ember 服务只是 Ember 对象,所以我认为这是更简洁的解决方案

http://emberjs.com/api/classes/Ember.Enumerable.html#toc_writing-your-own-enumerable

如果这对你有用,请告诉我....