2016-06-09 54 views
0

我在流星中有一個響應表,列出用戶集合中的用戶名和電子郵件地址。我想點擊電子郵件地址,然後彈出一個模式,並在「to」字段填入該電子郵件地址。將電子郵件地址填入流星的反應表地址

與無功表和電子郵件模式模板:

<template name="Compete"> 
{{> reactiveTable class="table table-bordered table-hover" settings=settings }} 
{{> emailModalTemplate settings.fields}} 
</template> 

設置幫手:

Template.Compete.helpers({ 

settings: function(){ 
    if (Meteor.user()){ 
     var col = Meteor.users.find({ }, {fields: {profile:1, emails:1} }); 
     var email = 'emails.0.address'; 
     return { 
      collection: col, 
      showFilter: false, 
      showNavigation: 'never', 
      fields: [{ 
        key: 'profile.userName', 
        label: 'Player' 
       }, { 
        key: email, 
        label: 'Email', 
        fn: function(email){ 
         return new Spacebars.SafeString(
          '<a href="#" class="sndLnk" value="'+email+'">'+email+'</a>' 
          ); 
        } 
       }] 
     }; 
    } 
}, 

這裏是電子郵件模式的模板:

<template name="emailModalTemplate">  
<div class="modal fade" id="emailModal"> 
    <div class="modal-dialog modal-sm"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <h4 class="modal-title">Send Email</h4> 
     </div> 
     <div class="modal-body">      
      <form role="form" id="email-form"> 
       <input type="email" id="inputEmail" placeholder="{{addToAddr}}"> 
       <input type="text" id="inputSubject" placeholder="Subject"> 
       <textarea id="inputBody" rows="5" placeholder="Message"></textarea>    
       <div class="modal-footer"> 
        <button type="submit" class="btn btn-primary">Send</button> 
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
       </div> 
      </form> 
     </div> 
    </div> 
    </div> 
</div>  
</template> 

在這一點上,{ {addToAddr}}助手只是控制檯日誌記錄「this」,但我可以得到的是實際的反應詞有表設置,但不是值。我是否通過傳入被動表格助手來傳遞正確的東西?

我還可以傳遞給電子郵件模式模板以獲取實際的電子郵件值,然後可以使用它填充電子郵件地址字段?

編輯:最後一點補充: 我的單擊事件如下:

'click .sndLnk': function(e){ 
    e.preventDefault();  
    console.log($(e.currentTarget).attr('value')); 
    $('#emailModal').modal('show'); 
} 

在這裏的console.log準確顯示我想通過在電子郵件地址,但我怎麼過在電子郵件模態形式?我通過助手假設,但也許這是錯的?

回答

0

我修修補補用它多一些,並通過了新的「外部」的輔助功能設置會話變量解決它,「外部」,因爲它僅僅是一個變種我設置,不Template.myTemplate.helpers內:

var openEmailModal = function(email) { 
    Session.set('theEmailAddr', email); 
    $('#emailModal').modal('show'); 
} 

然後我修改了點擊事件,以新的變種/函數調用:

'click .sndLnk': function(e){ 
    e.preventDefault();  
    var email = $(e.currentTarget).attr('value');  
    openEmailModal(email); 
} 

這似乎很基本的,我做了一天的一端插入遠遠超過這是我想.. 。感謝所有查看過的人。

相關問題