我如何在Parse (JavaScript SDK)中更新User对象
How can I update the User object in Parse (JavaScript SDK)?
我有以下视图,它将包含要更新的数据的表单提交给当前用户:
EditMyProfileView = Parse.View.extend({
template: Handlebars.compile($('#edit-my-profile-tpl').html()),
events: {
'submit .profile-details-edit': 'submit'
},
submit: function(e){
e.preventDefault();
var form = document.getElementById("profile-details-edit");
var FullName = form.FullName.value;
var bio = form.bio.value;
user = Parse.User.current();
user.set("FullName", FullName);
user.set("bio", bio);
form.submit();
user.save();
},
render: function(){
var attributes = this.model.toJSON();
this.$el.html(this.template(attributes));
}
}),
这是提交数据的表单:
<form class="profile-details-edit" id="profile-details-edit" role="form">
<p><label for="FullName"><b>Full Name</b></label><br><input type="text" id="FullName" name="FullName" maxLength="20" class="form-control" placeholder="{{FullName}}" autofocus="" style="padding: 19px; border: solid 2px #000; resize: none; font-family: Roboto; font-weight: 400; font-size: 16px; vertical-align: top;"></p>
<p><label for="bio"><b>About Me</b></label><br><textarea type="text" id="bio" name="bio" class="form-control" autofocus="" style="padding: 19px; border: solid 2px #000; resize: none; font-family: Roboto; font-weight: 400; font-size: 16px; height: 200px; vertical-align: top;" maxLength="288">{{bio}}</textarea></p>
<p><button class="button" type="submit">Submit Changes</button></p>
</form>
我知道表单或JQuery没有任何问题,因为我以前在类似的情况下使用过它。
为什么我不能更新用户数据呢?看起来很简单。我想这和某种我不知道的安全功能有关。有人有什么想法吗?
这是我更新的"Edit Profile"视图。我通过反复试验解决了这个问题,但我仍然不知道为什么它现在有效。我是JavaScript新手,但它看起来与Parse如何异步更新User对象有关。我添加了一个承诺,这样我就可以指定submit函数作为首选回调:
EditMyProfileView = Parse.View.extend({
template: Handlebars.compile($('#edit-my-profile-tpl').html()),
events: {
'submit .profile-details-edit': 'submit'
},
submit: function(e){
e.preventDefault();
var form = document.getElementById("profile-details-edit");
user = Parse.User.current();
user.save().then(function() {
var FullName = form.FullName.value;
var bio = form.bio.value;
user.set("FullName", FullName);
user.set("bio", bio);
form.submit();
user.save();
}, function(error) {
});
},
如果有人能确切地说明这两种方法之间的区别,以及为什么后者可以工作而前者不能,那将是非常感激的!
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- 我应该如何在后续登录时更新user.profile(类似于Accounts.onCreateUser)
- 我如何在Parse (JavaScript SDK)中更新User对象
- Meteor:如何使更新 Meteor.user 字段具有响应性