2012-04-27 42 views
1

与模板的if语句下面是我的模板:问题与Underscore.js

<script type="text/html" id="template_medassign">   
    <div class=" <%= pocket.get('spanTag') %>" > 
     <a data-toggle="modal" href="#windowTitleDialog" class="thumbnail">     
      <% if (<%= pocket.get('drugDoseDisplayName') %>.length < 0 ) { %> 
       <label ><%= pocket.get('drugDoseDisplayName') %></label> 
      <% } else { %> 
       ...else block 
      <% } %> 
     </a> 
    </div> 
</script> 

我从主模板传递pocket对象数据,并能够为spanTagdrugDoseDisplayName属性检索数据。但是,如果我尝试在if语句中使用“Microsoft JScript运行时错误:预期”从underscore.js中获取错误)'“

我试过其他方法,通过在模型中用布尔标志维护另一个道具,但没有运气。 Pl建议解决方案。

<% if (<%= pocket.get('isMedAsiigned') %> ) { %> 
<% if (%> <%= pocket.get('isMedAsiigned') %> <% ) { %> 

回答

2

你试图巢您的模板标签:

<% if (<%= pocket.get('drugDoseDisplayName') %>.length < 0 ) { %> 
     ^^^         ^^ 

和正在生产的JavaScript无效时_.template编译模板成JavaScript函数。一旦你在里面<% ... %>,你已经在JavaScript中,从fine manual

[...] as well as execute arbitrary JavaScript code, with <% … %>

有没有必要给你模板标签嵌套,你可以这样做:

<% if (pocket.get('drugDoseDisplayName').length < 0) { %> 
+0

感谢您的快速反应,这是有效的。 – 2012-04-28 13:04:48