2016-07-06 13 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

Trueこれはおそらくより適切な解決策です。 –

+0

私にとっては両方の答えが働いたが、これはより合法だと思う。両方の答えに感謝します。 –

関連する問題