在文件开始时,我定义了工具栏等:
<!-- 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 -->在index.html-file的末尾,我拉进了我的把手-文件:
<!-- 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);模板位于index.html-file中,在Handlebars.js-文件的加载和我的文件之间:
<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>我尝试在TryHandlebars上编译它,它在那里工作,这让我觉得我的设置有问题。当我加载页面时,它不会给出任何错误,但也不会显示任何内容。我可以使用手柄-方法等从控制台,但它不会改变任何东西。
希望这不仅是我错过了一些重要的东西,但这很有可能是。所有的帮助都是非常有用的。提前感谢!
更新:在控制台中做了一些实验:我可以访问template、driver和source。对template(driver)的调用返回正确的HTML,但网站没有更新。
这可能不是很清楚,但我使用Grunt作为本地开发环境,并在Bower中安装了工具栏。Gruntfile是由约曼制作的。
发布于 2015-06-21 11:34:00
我用最后一行这个JSFiddle找到了我的解决方案。我给出了模板为ID的标记,并使用:
$('#tagIDName').append(template(driver));而不仅仅是template(driver);
https://stackoverflow.com/questions/30953046
复制相似问题