使用 Ember-CLI 命名混合
Naming Mixins with Ember-CLI
我有一个 ember 插件,它使用多个 Mixin 来提供其功能。不幸的是,当我在 Ember Inspector 中查看这个对象时,我得到了 "unknown mixin" 个桶,我的状态分散在这些桶中:
我同意有很多 "buckets" 但我真的很想给它们命名。在 Ember-CLI context/environment.
中工作时如何做到这一点
p.s。我在 Ember-CLI 0.2.3 上使用 Ember 1.11.1 和 Ember Inspector 的最新版本(截至 2015 年 4 月 11 日)。
有人建议 toString()
函数可能会解决这个问题,但它似乎对我没有效果:
您在上图中看到的是应用下面建议的更改后出现在检查器中的内容:
// addon/mixins/ui-shared-animation.js
import Ember from 'ember';
var AnimationSupport = Ember.Mixin.create({
classNameBindings: ['_animateClass'],
animate: null,
_animator: Ember.observer( ... ),
animateEnabled: null,
animateDisabled: null,
_disabledObserver: Ember.observer( ... ),
animateEnter: null,
_enterAnimationObserver: Ember.observer( ... ),
_processAnimation: function(animate) { ... }
}
});
AnimationSupport.toString = function() { return 'ui-shared-animation'; };
export default AnimationSupport;
我遇到了同样的问题,并在 class 上使用 toString
方法解决了它。例如:
var Person = Ember.Object.extend({
name: null
});
Person.toString = function() { return 'Person'; };
export default Person;
好的,我已经通过查看 Ember Inspector 的已关闭问题并提出这个 gem:
来回答我的问题
在 Ember-CLI 中,您需要为 mixin 执行以下操作:
// addon/mixins/ui-shared-animation.js
import Ember from 'ember';
var AnimationSupport = Ember.Mixin.create({
classNameBindings: ['_animateClass'],
animate: null,
_animator: Ember.observer( ... ),
animateEnabled: null,
animateDisabled: null,
_disabledObserver: Ember.observer( ... ),
animateEnter: null,
_enterAnimationObserver: Ember.observer( ... ),
_processAnimation: function(animate) { ... }
}
});
AnimationSupport[Ember.NAME_KEY] = 'animation-support';
export default AnimationSupport;
耶!我的 6 mixin 插件方法变得更加合理。 :)
我有一个 ember 插件,它使用多个 Mixin 来提供其功能。不幸的是,当我在 Ember Inspector 中查看这个对象时,我得到了 "unknown mixin" 个桶,我的状态分散在这些桶中:
我同意有很多 "buckets" 但我真的很想给它们命名。在 Ember-CLI context/environment.
中工作时如何做到这一点p.s。我在 Ember-CLI 0.2.3 上使用 Ember 1.11.1 和 Ember Inspector 的最新版本(截至 2015 年 4 月 11 日)。
有人建议 toString()
函数可能会解决这个问题,但它似乎对我没有效果:
您在上图中看到的是应用下面建议的更改后出现在检查器中的内容:
// addon/mixins/ui-shared-animation.js
import Ember from 'ember';
var AnimationSupport = Ember.Mixin.create({
classNameBindings: ['_animateClass'],
animate: null,
_animator: Ember.observer( ... ),
animateEnabled: null,
animateDisabled: null,
_disabledObserver: Ember.observer( ... ),
animateEnter: null,
_enterAnimationObserver: Ember.observer( ... ),
_processAnimation: function(animate) { ... }
}
});
AnimationSupport.toString = function() { return 'ui-shared-animation'; };
export default AnimationSupport;
我遇到了同样的问题,并在 class 上使用 toString
方法解决了它。例如:
var Person = Ember.Object.extend({
name: null
});
Person.toString = function() { return 'Person'; };
export default Person;
好的,我已经通过查看 Ember Inspector 的已关闭问题并提出这个 gem:
来回答我的问题在 Ember-CLI 中,您需要为 mixin 执行以下操作:
// addon/mixins/ui-shared-animation.js
import Ember from 'ember';
var AnimationSupport = Ember.Mixin.create({
classNameBindings: ['_animateClass'],
animate: null,
_animator: Ember.observer( ... ),
animateEnabled: null,
animateDisabled: null,
_disabledObserver: Ember.observer( ... ),
animateEnter: null,
_enterAnimationObserver: Ember.observer( ... ),
_processAnimation: function(animate) { ... }
}
});
AnimationSupport[Ember.NAME_KEY] = 'animation-support';
export default AnimationSupport;
耶!我的 6 mixin 插件方法变得更加合理。 :)