我是车把的新手,我坚持通过车把脚本渲染模板。下面是代码。输出不包含我传递给模板的对象属性。请帮忙!
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.4/handlebars.js"> </script>
<script>
var context = { "name" : "XYZ", "occupation" : "developer" };
var templateScript = $('#handlebars-demo').html();
var theTemplate = Handlebars.compile(templateScript);
var html = theTemplate({name: "XYZ",occupation: "developer"});
console.log(html);
$(document.body).append(html);
</script>
<script id="handlebars-demo" type="text/x-handlebars-template">
<div>
My name is {{name}}. I am a {{occupation}}. // This just just renders My name is . I am a .
</div>
答案 0 :(得分:1)
尝试{{context.name}}
和{{context.occupation}}
答案 1 :(得分:1)
当使用带有节点js的把手时,我遇到了同样的问题。
问题是,当您创建车把模板时,它将使用服务器端编译器预编译您的脚本使用它的上下文(来自服务器的响应)。 那么 templateScript 变量在上下文中没有名称和职业,将看起来像这样:
<div>
My name is . I am a .
</div>
有一些解决方案可以避免这种情况:
\{{
以逃避表达 <script id="handlebars-demo" type="text/x-handlebars-template"> <div> My name is \{{name}}. I am a \{{occupation}}. </div> </script>
有关详细信息,请查看以下链接: Node.js with Handlebars.js on server and client