Handlebars.js如果没有按预期工作

时间:2014-02-07 05:47:03

标签: jquery handlebars.js

精神错乱检查,有人可以确认mainLocation应该返回“是”。由于某种原因,它返回“否”。

这是我的代码。

<script id="Templates" type="text/x-handlebars-template">
<div id="RowExpand{{id}}" class="collapse">
  {{#if mainLocation}}
    yes - Some content here...
  {{else}}
    no - Some content here...
  {{/if}}      
</div>
</script>

这是firebug中的json数据。

address     "5862 Vincent Blvd."
city        "Santa Monica"
state       "CA"
zipcode     "90452"
mainlocation    true

2 个答案:

答案 0 :(得分:1)

此模板的数据上下文是什么?

为了使这项工作,您可以将该部分包含在with block helper

In your html file:
 <head>
  ...
 </head>
 <body>
   {{> example}}
 <body>

<template name="example">
  {{#with data}}
    {{#if mainLocation}}
      html code
    {{else}}
      other html code
    {{/if}}
  {{/with}}
</template>


In your js file: 
Template.example.helpers({
   data: function () {
     return {mainLocation: true};
   }
});

答案 1 :(得分:1)

如果其他人遇到同样的问题。这是如何解决我的问题。我创建了一个自定义把手帮助器。

Handlebars.registerHelper("ismainlocation", function(mainlocation) {
 if(mainlocation){
   return "Yes";
 }
 else{
   return "No";
 }
});

我改变了我的脚本模板。

<script id="Templates" type="text/x-handlebars-template">
 <div id="RowExpand{{id}}" class="collapse">
 {{ismainlocation mainlocation}}     
 </div>
</script>