当您使用 Yeoman 创建 ember 应用程序时,它会为您创建一个车把模板文件夹 (.hbs)。
yeoman 配置是这样设置的:
watch: {
ember_templates: {
files: '<%= yeoman.app %>/templates/**/*.hbs',
tasks: ['ember_templates', 'livereload']
},
- 当模板位于文件夹根目录中时,它可以工作
- 当模板位于子文件夹
template/mySubfolder
中时,不会呈现模板(不返回 html) - 缺少模板时,ember 会抛出错误
因此,当模板位于子文件夹中时,它会被检测到...但是为什么不渲染
我尝试了各种表达方式,Gruntfile.js
但它并没有改善它。
watch: {
ember_templates: {
files: '<%= yeoman.app %>/templates/{,*/}*.hbs',
tasks: ['ember_templates', 'livereload']
},
@Mishik(评论太长了)
整个“手表”部分:
watch: {
ember_templates: {
files: '<%= yeoman.app %>/templates/**/*.hbs',
tasks: ['ember_templates', 'livereload']
},
coffee: {
files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'],
tasks: ['coffee:dist']
},
coffeeTest: {
files: ['test/spec/{,*/}*.coffee'],
tasks: ['coffee:test']
},
compass: {
files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'],
tasks: ['compass:server']
},
neuter: {
files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
tasks: ['neuter', 'livereload']
},
livereload: {
files: [
'<%= yeoman.app %>/*.html',
'{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
'<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
],
tasks: ['livereload']
}
}
还有一些我第一次没有看到的东西:
ember_templates: {
options: {
templateName: function (sourceFile) {
var templatePath = yeomanConfig.app + '/templates/';
return sourceFile.replace(templatePath, '');
}
},
dist: {
files: {
'.tmp/scripts/compiled-templates.js': '<%= yeoman.app %>/templates/{,*/}*.hbs'
}
}
}
这是我应该修改的部分吗?我尝试了几件事,但没有成功。