如何基于特定函数-Javascript的执行来渲染模板

时间:2014-10-28 18:04:59

标签: javascript templates

我有一个下划线模板,我想根据某个函数的调用在模板中呈现一个特定的代码。 模板:

<div id = "account-hover-container" style="display:none;">
    <div class = "form-horizontal" id="hover-group-container">

    <% _.each(obj,function(item){ %>
      <p class="accountName-overview">
          <label for="user-create-date" class="control-label col-xs-3" id="accountName-title">Name:</label>
          <label class="overlay-accountName"><%= item.accountname %></label>
         <hr id="main-overlay-hr"/>
     </p>
  <% });%>

         <div id="detail-container">
        <div class="form-group overlay-group">
            <label for="user-create-date" class="control-label col-xs-3"><%= messages.admin.account.createdAccount %></label>
            <label name="user-create-date" id="user-create-date" class="control-label col-xs-4"></label>
        </div>
 </div></div>

在上面的模板中,我想为每个循环执行上面的某个功能(下面)。休息我想在页面加载时渲染。

JS:

function popcheck(obj) {
   //obj is a json object having fields for names and emails.
   //do some stuff
}

我可以从模板中调用popcheck功能,并仅为此功能在for-each循环内显示这些内容。这可能吗?? 有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以拥有两个单独的模板,account-hover-container-template和accountname-overview-template。 然后,您可以在popcheck函数中呈现并插入accountname-overview-template。

例如:

<div id = "account-hover-container" style="display:none;">
    ......
    <div class="accountname-overview-container"/>
    ......
</div>
<script type="text/template" id="accountname-overview-template">
    <% _.each(obj,function(item){ %>
    ......
    <% });%>
</scirpt>

function popcheck(obj) {
  var tmpl = _.template($(#accountname-overview-template).html());
  $('.accountname-overview-container').html(tmpl({obj: obj}));
}