Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何将模板添加到Ember中的子目录?_Ember.js_Ember Cli - Fatal编程技术网

Ember.js 如何将模板添加到Ember中的子目录?

Ember.js 如何将模板添加到Ember中的子目录?,ember.js,ember-cli,Ember.js,Ember Cli,我很确定我的问题的答案在一些文档中,我在官方和非官方网站上阅读了很多页面,还有很多相关的问题,但是我的谷歌fu似乎还没有发展到足以帮助我找到答案,所以我就在这里 在我的团队中,我们正在为某些web应用程序使用Ember cli。我们有一个经典的app/templates文件夹,我们把每个“控制器”的.hbs放在其中。在这些把手模板中,我们使用的组件是app/templates/components中的组件 我们最近已经到了应用程序/模板/组件太大的地步。我认为把它们分成子目录是个好主意,例如

我很确定我的问题的答案在一些文档中,我在官方和非官方网站上阅读了很多页面,还有很多相关的问题,但是我的谷歌fu似乎还没有发展到足以帮助我找到答案,所以我就在这里

在我的团队中,我们正在为某些web应用程序使用Ember cli。我们有一个经典的app/templates文件夹,我们把每个“控制器”的.hbs放在其中。在这些把手模板中,我们使用的组件是app/templates/components中的组件

我们最近已经到了应用程序/模板/组件太大的地步。我认为把它们分成子目录是个好主意,例如

  • app/templates/product1包含特定于product1的组件+基本product1把手(在app/router.js中称为“控制器的hbs”)
  • app/templates/product2包含特定于product2的组件+基本product2把手(在app/router.js中称为“控制器的hbs”)
但当我这样做时,它不起作用,并显示一个白色页面:

  • 如果我将“Controller's hbs”从app/templates移动到app/templates/product1,我会看到一个完整的白色页面,没有加载任何内容
  • 如果我将一个组件从app/templates/components移动到app/templates/product1,“Controller's hbs”将显示,但我的组件所在的位置有一个空块
我不知道是否必须配置ember,以便它在app/templates文件夹中递归搜索把手,和/或是否必须更改router.js,以及如何调用我的组件,以便ember知道它们在哪里

提前感谢,


Benjamin

重写
templateName
属性

App.YourStuffComponent = Ember.Component.extend({
    templateName: 'components/intoDir/your-stuff'
});

演示:

我在app/components中创建了一个文件夹product-a,并将我的js放入其中:
app/components/product-a/some component.js
。我对我的模板做了同样的操作:
app/templates/components/product-a/SomeComponent.hbs
最后在app.js中我添加了:
app.SomeComponent=Ember.component.extend({templateName:'components/product-a/SomeComponent')但它不起作用。我还尝试了:
App.SomeComponent=Ember.Component.extend({templateName:'components/product-a/SomeComponent.hbs')相同错误:白页和断言失败:找不到名为“某个组件”的帮助程序。我做错了什么?子文件夹中的组件应该可以正常工作。请尝试不带斜杠的文件夹名称。您还需要Ember 1.9.0+。你用的是什么版本?请参阅rwjblue的评论:另外,如果这是您真正想要的,那么您的问题已经被问到:您好!很抱歉回答得太晚,我的注意力集中在其他事情上。你给我的链接正是我需要的,我的问题已经被问到了。。。谢谢你的帮助和你的链接,它现在工作得很好!