子目录中的Ember组件

时间:2015-03-13 17:44:51

标签: ember.js ember-cli

我已经知道现在支持在/ components中包含目录/文件夹。使用ember-cli我可以生成所需的必要子目录/组件。但是,我似乎无法引用该组件。

例如,如果我是这样的文件夹结构:

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

1 个答案:

答案 0 :(得分:18)

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

{{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
});

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

import Ember from 'ember';

export default Ember.Component.extend({

});

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