【问题标题】:Underscorejs : can template call itselfUnderscorejs : 模板可以自己调用吗
【发布时间】:2015-03-25 19:27:06
【问题描述】:

以下是下划线模板: 模板名称是 navItems.html。我正在使用文本插件来加载模板

<li>
     <a><%=data.title%></a>
      <p><%=data.attr%></p>
 </li>

我从主干视图这样称呼它

<%=_.template(navItemTpl,{'data':data})%>

是否可以从模板内部调用模板本身,例如 我可以吗?

 <%=_.template(navItemTpl,{'data':data})%> 

在 navItem.html 里面?

【问题讨论】:

    标签: templates backbone.js underscore.js underscore.js-templating


    【解决方案1】:

    是的,这是可能的。在下面添加了示例代码:

    HTML:

    <div id="here"></div>
    
    <script type="text/template" id="templ">
        <p id="container">
            <%= _.template($("#inner_templ").html(),{user:{"firstName":"some name"}}) %>
        </p>     
    </script>    
    <script type="text/template" id="inner_templ">
        <div><%=user.firstName%></div>
    </script>    
    

    JS:

    $(function() {
        var compiled = _.template($("#templ").html());
        $("#here").html(compiled());
    });
    

    【讨论】:

    • 我想在模板本身中调用 。即我可以在自身内部调用相同的部分。
    • 当我尝试得到“RangeError:超过最大调用堆栈大小”。为什么要在一个模板内调用同一个模板。
    • 我不想对特定级别进行迭代,因为我不知道它嵌套了多少级别,所以为了递归使用我正在这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2014-04-28
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多