-2

Я пытаюсь добавить вспомогательную функцию к моему шаблону underscore. Но я не в состоянии это сделать. кто-нибудь может меня исправить?Как добавить помощника в шаблон `underscorejs`?

вот мой tempalate:

<script type="text/template" id="table"> 
    <table> 
     <tbody> 
      <tr> 
       <% _.each(obj.titles, function(item){ %> 
        <td><%= item.label %> 
       <% }); %> 
      </tr> 
     </tbody> 
    </table> 
</script> 

Вот мои ЯШ:

var viewHelper = { 
    getProperty: function(propertyName) { 
     console.log('getProperty ' + propertyName); 
     return propertyName; 
    } 
}; 

var obj = { 
    "titles" : [ 
      {"label" : "-----Totals for Month---- "}, 
      {"label":"-----Previous Year-----"} 
    ] 
}; 

var template = _.template($('#table').html()); 

var html = _.extend(obj, viewHelper); 

$('body').html(template(html)); 

Но я не могу получить любой вызов в моей вспомогательной функции на всех ..

пожалуйста, обновите мою скрипку;

fiddle

+0

Ваш шаблон не использует 'getProperty', вы пробовали вызов' getProperty' в шаблоне? –

ответ

1

Он отлично работает с вашим кодом. Вы просто должны использовать функцию в шаблоне:

<script type="text/template" id="table"> 
    <table> 
     <tbody> 
      <tr> 
       <% _.each(obj.titles, function(item){ %> 
        <td><%= item.label %></td> 
       <% }); %> 
      </tr> 
      <tr> 
       <% _.each(obj.titles, function(item){ %> 
        <td><%= getProperty(item.label) %></td> 
       <% }); %> 
      </tr> 
     </tbody> 
    </table> 
</script> 

Это работает plunkr: http://plnkr.co/edit/akeiPbQoZBjzgBsEykTi?p=preview