0

当我开始遇到错误时,我正在使用流星中的用户帐户。控制台中打印的错误在我的userEmail辅助函数中。我的问题是,如果是undefined这样,为什么我会得到输出?

我的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';
    }
});
4

1 回答 1

0

您的函数在加载集合之前运行,但由于 Meteor 助手是反应性的,一旦加载集合,您就会得到结果。
防止该消息的一种方法是有条件地运行您的代码:

if(this.emails !== undefined){
  return this.emails[0].address;
}
于 2017-08-28T19:15:29.560 回答