我可以使用EmberJS mixins添加(静态)类方法

Ami*_*r T 8 javascript static-methods class-method ember.js

在标准的ember mixin示例中,我们添加了实例方法/属性:http://emberjs.com/api/classes/Ember.Mixin.html

使用reopenClass我们可以添加类方法(静态方法),给我们类似的东西:

UninstantiatedClass.findAll()
Run Code Online (Sandbox Code Playgroud)

我可以创建一个添加类方法的mixin吗?

小智 14

是的你可以!

只需在reopenClass调用期间提供mixin:

// The mixin itself
FooMixin = Em.Mixin.create({
   ...
});

// Mix in at the instance level
BarClass = Em.Object.extend(FooMixin, {
   ...
});

// Mix in at the class level
BarClass.reopenClass(FooMixin, {
   ...
});
Run Code Online (Sandbox Code Playgroud)

我偶然发现了这个问题,发现这是在Discourse项目中完成的.

希望这可以帮助!