2016-11-21 51 views
0

當我開始出現錯誤時,我正在使用流星中的用戶帳戶。在控制檯中打印錯誤是在我的userEmail輔助函數中。 我的問題是如果它是undefined那麼爲什麼我會得到一個輸出?模板助手中的異常:TypeError:無法讀取未定義的屬性'0'

我的HTML代碼:

{{#each user}} 
     {{#if student}} 
      <div class="row"> 
       <div class="user-wrapper"> 
        <div class="row"> 
         <div class="name-wrapper col-md-3"> 
          <span class="head">{{profile.firstname}}</span> 
         </div> 
         <div class="email-wrapper col-md-3"> 
          <span class="head">{{userEmail}}</span> 
         </div> 
         <div class="email-wrapper col-md-3"> 
          <span class="head">{{>starsRating mutable=true class="js-rate-images" id=_id}}</span> 
         </div> 
         <div class="email-wrapper col-md-3"> 
          <span class="head">Remark</span> 
          <button class="btn btn-primary">Enter Remark</button> 
         </div> 
        </div> 
       </div> 
      </div> 
    {{/if}} 
    {{/each}} 

幫助我的職責是:裝載前集合

Template.Users.helpers({ 
    user: function(){ 
     return Meteor.users.find(); 
    }, 
    userEmail:function(){ 
     return this.emails[0].address; 
    }, 
    student:function(){ 
     return this.profile.profession === 'student'; 
    } 
}); 
+0

的'emails'鍵默認情況下不公開。你的用戶出版物是什麼樣的? –

+1

模板應該可以返回Meteor.user()。emails [0]'?雖然'電子郵件'可能根本不存在,如果你不使用'accounts-password' - 即'accounts-facebook'等等 – JeremyK

+0

我正在使用accounts-password –

回答

0

您的功能正在運行,但由於流星助手是無功,你得到的結果,一旦集合被加載。
一來防止該消息的方法是有條件地運行您的代碼:

if(this.emails !== undefined){ 
    return this.emails[0].address; 
} 
相關問題