Javascript 渲染时手柄部分打印[对象]
我正在尝试注册一个把手部分,以便它可以包含在另一个视图中。我用的是车把2.0.0 以下是模板:Javascript 渲染时手柄部分打印[对象],javascript,handlebars.js,Javascript,Handlebars.js,我正在尝试注册一个把手部分,以便它可以包含在另一个视图中。我用的是车把2.0.0 以下是模板: {{> subNav}} <h1>Issue name: {{ name }}</h1> <h2>Issue id: {{ id }}</h2> <section id="issue-sections"> {{#each sections}} <li> {{> sectionsListIte
{{> subNav}}
<h1>Issue name: {{ name }}</h1>
<h2>Issue id: {{ id }}</h2>
<section id="issue-sections">
{{#each sections}}
<li>
{{> sectionsListItem}}
</li>
{{/each}}
</section>
在我的申请中:
Handlebars.partials = Handlebars.templates;
在控制台中运行以下命令时:
Handlebars.templates.issuesShow({'a':'b'});
结果是:
"[object Object]<p>This is a sub navigation.</p>
<h1>Issue name: </h1>
<h2>Issue id: </h2>
<section id="issue-sections">
</section>"
“[对象]这是一个子导航
邮品名称:
问题编号:
"
我不确定[对象]为什么被打印出来。。。。有什么想法吗?我不太清楚为什么会发生这种情况。但是,我认为问题在于模板是用handlebar预编译器预编译的,然后当它们被分配到handlebar.partials时再次编译 有一种更为优雅的解决方案,但我现在可以使用grunt exec运行的以下命令
handlebar视图/部分/***.handlebar>.tmp/public/js/templates.js
这将预编译模板,它们将从handlebar.templates
然后我也跑了
handlebar-p视图/partials/***.handlebar>.tmp/public/js/templates.js
这将使用partials标志再次预编译相同的模板,并将输出附加到相同的模板文件
这些可以从
handlebar中获得。partials
也可以在其他模板中使用,使用handlebar包括部分语法:{{>partialName}
我今天遇到了同样的问题。我相信这是由于我在本地安装的Handlebar版本(Handlebar 3.0)与我在浏览器中使用的通过npm安装的版本(Handlebar 2.0)不匹配造成的。我将我的项目的Handlebar npm包升级到3.0,一切都很顺利。可能是因为此处提到的版本不匹配。是的,这正是我发现的。npm已经将Handlebar更新为0.10.2,现在使用Handlebar 3.0.3库来编译模板;但我的运行库仍然是v2。我将运行库更新为3.0.3,一切正常。
Handlebars.templates.issuesShow({'a':'b'});
"[object Object]<p>This is a sub navigation.</p>
<h1>Issue name: </h1>
<h2>Issue id: </h2>
<section id="issue-sections">
</section>"