2014-02-07 5 views
1

Проверка безумия, может кто-то подтвердить, что mainLocation должен вернуть «да». По какой-то причине он возвращает «нет».Handlebars.js Если не работает как ожидалось

Вот мой код.

<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> 

Это данные json в firebug.

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

ответ

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> 
1

Каков ваш контекст данных для этого шаблона?

Чтобы сделать эту работу, вы можете обернуть участок в с блочным помощник

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}; 
    } 
}); 
+0

Благодарим за отзыв. Я довольно новичок в handlebars, и я не, если я помещаю ваш скрипт в правильное место. Это то, что я пробовал: и это не сработало. Что я делаю неправильно? спасибо – user752746

+0

Если вы работаете над проектом Meteor. Тебе не нужен скриптовый тег. Я собираюсь изменить свой ответ, чтобы показать вам – Bozhao

+0

Спасибо, я не использую Метеор. – user752746

Смежные вопросы