2010-12-06 55 views
5

例如,在這樣的代碼:如何從jQuery tmpl模板的{{each}}塊中訪問外部範圍的變量?

<div id="user_collection_requests-${id} table-cell" class="user_collection_requests"> 
     {{if requests}} 
      {{each(i, user) requests}} 
       <div id="user_collection_request-${id}-${user.id}" ... 
      {{/each}} 
     {{/if}} 
    </div> 

第一${id}打印外部對象的屬性id,但第二${id}打印一樣${user.id}。我想從{{each}}塊內抓取外部示波器的id

這可能嗎?或者我必須確保將變量命名爲不會發生這樣的碰撞?

+0

我也這麼認爲。 `item.parent`不幸的是`undefined`。 – 2010-12-07 04:14:06

回答

-1

你需要使用jQuery的父類的方法

http://api.jquery.com/parent/ 

.parent()給你的父母財產的

+0

他不問關於DOM的問題,他問的是jQuery數據模板。 – 2010-12-06 05:50:00

0
<script id="template" type="text/x-jquery-tmpl"> 
    <div id="user_collection_requests-${id} table-cell" class="user_collection_requests"> 
     {{if user}} 
      {{each user}} 
       <div id="user_collection_request-${$data.id}-${id}"></div> 
      {{/each}} 
     {{/if}} 
    </div>  
</script> 

例子:http://jsfiddle.net/P4jGt/

0

在簡單的話

使用${($data.UserId = Id),''}並在以後使用each作爲UserId

這裏是我的代碼,我使用的腳本

<script id="templateFolderTop" type="text/html"> 
    <li> 
     ${($data.ParentTagSlug = Tag.replace(/[^a-zA-Z0-9_]/g,'-')),''} 
     <span class="CAPS"> 
      <a id="${ParentTagSlug}" onclick="_NewsManager.FolderSubCall(${Id})"></a> 
      <a href="#${ParentTagSlug}" class="top_menu_href" >${Tag}</a> 
     </span> 
     {{if ChildList.length}} 
     ${($data.ParentTag = ParentTagSlug),''} 
     <div class="dropdown_2columns"> 
      <div class="col_1 firstcolumn"> 
       <ul> 
        {{each ChildList}} 
        ${($data.TagSlug = Tag.replace(/[^a-zA-Z0-9_]/g,'-')),''} 
        <li> 
         <a id="${ParentTag}-${TagSlug}" onclick="_NewsManager.NewsListCall(${Id})"></a> 
         <a href="#${ParentTag}-${TagSlug}" >${Tag}</a> 
        </li> 
        {{/each}} 
       </ul> 
      </div> 
     </div> 
     {{/if}} 
    </li> 
</script> 
1

之一,你可以在外面聲明一個變量您的{{每個}}塊

${($data.localVariable = $id),''} 

和訪問內部晚些時候

${localVariable}