为什么我会超出最大调用堆栈大小错误。没有.val()

时间:2014-08-26 16:07:03

标签: javascript jquery html meteor

当我尝试使用跟随按钮时,我试图制作以下功能我得到了#34; Uncaught RangeError:超出了最大调用堆栈大小"如果我将.val()添加到Meteor.users.update(Meteor.userId(), {$addToSet: {'profile.following': usern}});的末尾,则会将" "返回到profile.following,它应返回用户所在的个人资料的用户名。在这里感谢先进的代码。

    Template.user_profile.events({
     'click #follow':function () {
        var usern=$("#username");
        Meteor.users.update(Meteor.userId(), {$addToSet: {'profile.following': usern}});
        return Meteor.user().profile.following;
    }
})

HTML

  <template name="user_profile">
  <h2 id="username">{{username}}</h2>
  <div>{{profile.followingnumber}}</div>
  <div>{{profile.followedbynumber}}</div>
  <div>{{profile.bio}}</div>
  <button id="follow">Follow</button>
</template>

服务器端

Accounts.onCreateUser(function(user) {
    user.profile.following=[];
    user.profile.followingn=0;
    user.profile.followed=[];
    user.profile.followedn=0;
    return user;
});

1 个答案:

答案 0 :(得分:0)

在事件处理程序中,您可以使用this访问当前数据上下文,而不是jQuery访问用户个人资料用户名(您应该使用$("#username").text(),{{1仅用于表单元素!),只需使用.val()

所以这就是你应该提出的:

this.username

没有特别需要在此点击事件中返回当前用户的关注列表,而不是首先确定您的意图。