2016-07-06 33 views
1

我正在使用{{#each}}循環迭代div元素,具體取決於輔助函數返回的數組。現在我想保存元素的ID,當我點擊一個按鈕,例如當我點擊第一個元素中的按鈕時,那麼點擊按鈕應該返回該元素的ID。從模板到流星js文件中的值

  <div class="row"> 
      {{#each db}} 
      <div class="col-md-4"> 
       <a href="#" class="product-name" id="packageSelected">{{ this.title }}</a> 
       <div class="small m-t-xs"> 
        {{this.description}} 
       </div> 
       <button class="btn btn-sm btn-primary" id="packageNext" value="{{this._id}}">Next</button> 
      </div> 
      {{/each}} 
     </div> 

當我點擊按鈕時,它只返回第一個元素的id而不是其按鈕被點擊的元素的id。

Template.package.events({ 
    'click #packageNext':function(event){ 
     event.preventDefault(); 
     var packageSelected=$("#packageNext").val(); 
     console.log(packageSelected); 
    } 
}); 

我試着用下面的代碼來獲得標題,但它是相同的。

Template.package.events({ 
    'click #packageNext':function(event){ 
     event.preventDefault(); 
     var packageSelected=$(".m-t-xs").text(); 
     console.log(packageSelected); 
    } 
}); 

回答

1

還有一種更簡單的方法:在流星模板事件中,this將是當前的數據上下文。所以只是:

Template.package.events({ 
    'click #packageNext'(event) { 
    console.log(this); // the whole object 
    console.log(this._id); // the _id of the object 
    } 
}); 
+0

沒錯,這可能是更正確的解決方案。 –

+0

對於我來說,這兩個答案都有效,但我認爲這更合理。非常感謝這兩個答案。 –