Ember.js 如何将模板添加到Ember中的子目录?
我很确定我的问题的答案在一些文档中,我在官方和非官方网站上阅读了很多页面,还有很多相关的问题,但是我的谷歌fu似乎还没有发展到足以帮助我找到答案,所以我就在这里 在我的团队中,我们正在为某些web应用程序使用Ember cli。我们有一个经典的app/templates文件夹,我们把每个“控制器”的.hbs放在其中。在这些把手模板中,我们使用的组件是app/templates/components中的组件 我们最近已经到了应用程序/模板/组件太大的地步。我认为把它们分成子目录是个好主意,例如Ember.js 如何将模板添加到Ember中的子目录?,ember.js,ember-cli,Ember.js,Ember Cli,我很确定我的问题的答案在一些文档中,我在官方和非官方网站上阅读了很多页面,还有很多相关的问题,但是我的谷歌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”将显示,但我的组件所在的位置有一个空块
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的评论:另外,如果这是您真正想要的,那么您的问题已经被问到:您好!很抱歉回答得太晚,我的注意力集中在其他事情上。你给我的链接正是我需要的,我的问题已经被问到了。。。谢谢你的帮助和你的链接,它现在工作得很好!