如何在下划线模板中使用if或trinary运算符

时间:2016-01-19 08:46:16

标签: backbone.js underscore.js

<script type="text/template" id="list-template">
    <td class="title"><span><%-from['name'] %></span></td>
    <td>
    <div class="title"><span><%- message ? message : '' %></span>

    </td>

    <td><span><%-id %> </td>

</script>

错误是:

  

ReferenceError:未定义消息

     

((__t=( message ? message : '' ))==null?'':_.escape(__t))+

1 个答案:

答案 0 :(得分:2)

如果要使用JS表达式(例如三元运算符),则应使用<% expression %>语法。您可以使用<% message ? print(message) : print('') %>直接在模板中使用此功能。

更好的方法是评估JS代码中的表达式并将评估的值传递给模板:

var tpl = _.template("<div>Some text: <%= message %></div>"); tpl({ message: message || ''})