子目录中的Ember组件

leo*_*ojh 10 ember.js ember-cli

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

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

app/components/sub/test-comp.js
app/templates/components/sub/test-comp.hbs
Run Code Online (Sandbox Code Playgroud)

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

{{test-comp model=model}}
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

A helper named 'test-comp' could not be found
Run Code Online (Sandbox Code Playgroud)

余烬:1.10.0
ember-cli:0.2.0

GJK*_*GJK 18

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

{{sub/test-comp model=model}}
Run Code Online (Sandbox Code Playgroud)

编辑:关于Leo所涉及的问题,结果证明这是一个发电机问题.组件生成器创建如下内容:

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

export default Ember.Component.extend({
  layout: layout
});
Run Code Online (Sandbox Code Playgroud)

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

import Ember from 'ember';

export default Ember.Component.extend({

});
Run Code Online (Sandbox Code Playgroud)

编辑2:看起来这是一个已知的问题.我仍然不知道为什么有必要手动导入布局,因为没有它,组件应该可以正常工作.