Ember 个子目录中的组件

Ember components in subdirectory

我了解到现在支持在 /components 中包含 directories/folders。使用 ember-cli 我可以生成所需的 subdirectory/component。但是,我似乎无法引用该组件。

例如,如果我的文件夹结构如下:

app/components/sub/test-comp.js
app/templates/components/sub/test-comp.hbs

引用方式:(在另一个 .hbs 文件中)

{{test-comp model=model}}

给我以下错误:

A helper named 'test-comp' could not be found

ember:1.10.0
ember-cli: 0.2.0

您需要使用组件的完整路径:

{{sub/test-comp model=model}}

编辑:关于 Leo 遇到的问题,事实证明这是一个生成器问题。组件生成器创建如下内容:

import Ember from 'ember';
import layout from '../templates/components/sub/foo-bar';

export default Ember.Component.extend({
  layout: layout
});

据我所知,没有理由导入这样的布局。除非发生重大变化,否则会自动发现组件布局(如果您使用的是默认命名约定)。我不知道它为什么这样做(可能是一个错误),但你可以通过删除导入来修复它:

import Ember from 'ember';

export default Ember.Component.extend({

});

编辑 2:看起来像 this is a known issue。我仍然不知道为什么需要手动导入布局,因为没有它组件应该可以正常工作。