2016-11-21 44 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; 
} 
相关问题