1

这是我的模板:

<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 语句中尝试使用,我会从 underscore.js 收到错误,并显示“Microsoft JScript 运行时错误:预期的')'”

我也尝试了其他方式,通过在模型中维护另一个带有 bool 标志的道具,但没有运气。请提出解决方案。

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

1 回答 1

2

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

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

并且在_.template将模板编译为 JavaScript 函数时会产生无效的 JavaScript。一旦你进入里面<% ... %>,你就已经在 J​​avaScript 中了,来自精美的手册

[...] 以及执行任意 JavaScript 代码,使用 <% ... %>

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

<% if ( pocket.get('drugDoseDisplayName').length < 0 ) { %>
于 2012-04-27T20:16:37.167 回答