我有一个mixin app/mixins/ui-listener.js
,我很难与Ember-CLI一起使用。我正在尝试使用以下语法的mixin:
import ListenerMixin from './mixins/ui-listener';
export default Ember.Component.extend(ListenerMixin,{
// class definition
}
当我保存它时失败,抱怨
ENOENT,没有这样的文件或目录'tmp / tree_merger-tmp_dest_dir-74tK3rvD.tmp / [app-name] /components/mixins/ui-listener.js'
似乎很有趣,“mixins”目录嵌套在“components”目录下(因为Ember-CLI将这些目录放在同一级别),但这可能只是一个Brocoli构建步骤。无论如何,任何帮助将不胜感激。
答案 0 :(得分:28)
您可以转到../
并检查属性../../../
,而不是在导入中添加config/environment.js
(甚至更差modulePrefix
)。我们假设前缀是app-client
。
然后,您可以使用import UIListen from 'app-client/mixins/ui-listener';
进行导入。绝对最适合你,如果你在"深" subroute等。
答案 1 :(得分:15)
我不知道你如何导出你的mixin,但这应该有效:
mixins/ui-listener.js
中的:
import Ember from 'ember';
export default Ember.Mixin.create({
//some stuff
});
components/my-component.js
中的:
import Ember from 'ember';
import UIListenerMixin from '../mixins/ui-listener';
export default Ember.Component.extend(UIListenerMixin, {
// some stuff
});