在文件的开头我定义了Handlebars等:
plist
在<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/handlebars/handlebars.js"></script>
<!-- endbower -->
<!-- endbuild -->
- 文件的末尾,我拉入了我的Handlebars文件:
index.html
与Handlebars相关的代码的文件是<!-- build:js({app,.tmp}) scripts/main.js -->
<script src="scripts/main.js"></script>
<script src="scripts/serverHandler.js"></script>
<script src="scripts/driver.js"></script>
<!-- endbuild -->
。它看起来像这样:
driver.js
模板位于driver = {
someBoolean : false,
name : null,
startTime: new Date(),
position : null
};
source = $('#drive-buttons-template').html();
template = Handlebars.compile(source);
template(driver);
- 文件中,介于Handlebars.js文件的加载和我的文件之间:
index.html
我尝试在TryHandlebars上编译它,它在那里工作,这让我觉得我的设置有问题。当我加载页面时,它没有给我任何错误,但也没有显示任何内容。我可以从控制台使用Handlebars方法等,但它不会改变任何东西。
希望这不仅仅是因为我错过了必不可少的东西,但这很可能。 所有的帮助都很受欢迎。提前致谢!
更新
一些在控制台中进行实验:
我可以访问<script id="drive-buttons-template" type="text/x-handlebars-template">
<button type="button" class="btn btn-default btn-lg">
{{#if someBoolean}} <span class="glyphicon glyphicon-stop" aria-hidden="true"></span> Start
{{else}} <span class="glyphicon glyphicon-play" aria-hidden="true"</span> Stop {{/if}}
</button> </script>
,template
和driver
。对source
的调用会返回正确的HTML,但网站不会更新。
可能不太清楚,但我将Grunt用于本地开发环境,而Handlebars与Bower一起安装。 Gruntfile由Yeoman制作。
答案 0 :(得分:0)
我找到了this JSFiddle最后一行的解决方案。我给了标签,其中模板是一个ID,并使用:
$('#tagIDName').append(template(driver));
而不只是template(driver);