ifders语句与Underscore.js中的模板一起出现问题

时间:2012-04-27 19:50:06

标签: 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的错误。“

我也尝试了其他方式,通过在bool标志模型中保持另一个道具,但没有运气。 Pl建议解决方案。

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

1 个答案:

答案 0 :(得分:2)

您正在尝试嵌套模板标记:

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

_.template将您的模板编译成JavaScript函数时,这会产生无效的JavaScript。进入<% ... %>后,您已使用fine manual中的JavaScript:

  

[...]以及使用&lt;%...%&gt;

执行任意JavaScript代码

您无需嵌套模板标签,您可以这样做:

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