.hbs文件剥离javascript

时间:2016-07-08 06:59:50

标签: gruntjs handlebars.js assemble

我在.hbs文件中包含一个脚本,但每次我组装grunt汇编这个.hbs文件时,HTML输出中的脚本中的hbs模板都会被忽略。 这是我的.hbs文件

<script id="myTemplate1" type="text/x-handlebars-template">
{{#each}}
<div class="sample">
....
</div>
{{/each}}
</script>

我使用grunt汇编汇编上面的.hbs文件,它只是忽略了脚本标记内的所有内容,我只能在HTML输出中看到以下内容

<script id="myTemplate1" type="text/x-handlebars-template">
</script>

这里有什么问题?我试着把脚本作为一个单独的JS文件但是没有用?我还尝试将脚本包含在HTML输出中,但每次我组装时,它都会覆盖,我只得到空标签。

2 个答案:

答案 0 :(得分:0)

#each块帮助器需要传递给它的数组才能迭代。它看起来像......

<script id="myTemplate1" type="text/x-handlebars-template">
{{#each templatesArray}}
<div class="sample">
....
</div>
{{/each}}
</script>

有关更多示例,请参阅Handlebars Documetation

你还应该查看由Assemble的创建者制作的Handlebars-Helpers,它包含了大量有用的助手。

答案 1 :(得分:0)

您可以使用我在下面提到的内容。
我意识到该方法将与Handlebars的基础相矛盾。相反,我在控制器中添加了以下内容:

var scripts = [{ script: '/js/myTestScript.js' }];
res.render('contact', { title: 'Kontakt', scripts: scripts });

在我的布局中,它看起来像这样:

<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
{{#each scripts}}
  <script src="{{script}}"></script>
{{/each}}