gpt4 book ai didi

javascript - 单击按钮后如何更新解析中的现有对象? (JavaScript SDK)

转载 作者:行者123 更新时间:2023-12-02 16:59:42 25 4
gpt4 key购买 nike

使用 Parse.com 和 JavaScript SDK。

以下函数的目的是:

a/返回当前用户响应好友请求所需的用户列表。b/当他们点击“取消”时,当前对象状态从“待处理”更改为“已拒绝”

(a) 部分按要求工作。 (b) 部分返回以下错误

Uncaught TypeError: Cannot call method 'get' of undefined

我认为这是因为它找不到“状态”来更改并将其从“待处理”保存为“已拒绝”?

我已经屏蔽了我认为不起作用的代码区域,但无法解决此问题并且需要一些帮助;-)

                     //////////Returns list of Friends pending a response///////////////////
function FriendsPending() {

$('#containerFriends').empty();
$('#containerFriendsRejected').empty();
$('#containerFriendsRequestSent').empty();
$('#containerFriendsConnected').empty();
$('#userimgs').empty();

var currentUser = Parse.User.current();
var FriendRequest = Parse.Object.extend("FriendRequest");

var query = new Parse.Query(FriendRequest);
query.include('toUser');
query.include('SentTo');
query.include("myBadge");
query.equalTo("fromUser", currentUser);
query.equalTo("status", "Pending");

query.find({
success: function(results) {
var friends = [];
for (var i = 0; i < results.length; i++) {
friends.push({
imageURL: results[i].get('toUser').get('pic'),
friendRequestId: results[i].id,
username: results[i].get('toUser').get('username'),
userId: results[i].get('toUser').id,
status: results[i].get('status').id


});


}
var select = document.getElementById("FriendsPending");
$.each(friends, function(i, v) {
var opt = v.username;
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
})

$('#containerFriendsPending').empty();
_.each(friends, function(item) {
var wrapper = $('<div class="portfolio-item-thumb one-third"></div>');
wrapper.append('<img class="responsive-image friendImgOutline" src="' + item.imageURL + '" />'+ '<br>');
wrapper.append('<div class="tag">' + item.username + '</div>');
$('#containerFriends').append(wrapper);
wrapper.append('<div type="button" class="btn btn-success mrs">' + 'Accept' + '</div>');
wrapper.append('<div type="button" class="btn btn-danger mrs decline">' + 'Decline' + '</div>');
$('#containerFriendsPending').append(wrapper);
//////Code with issues//////////////
$(document).on('click', function() {
$(".decline").click(function() {
status: results[i].get('status').id
status.set("status", "Declined");
console.log(status);
///////////////////////////
status.save(null, {
success: function(results) {
// The object was saved successfully.
location.reload();
},
error: function(contact, error) {
// The save failed.
// error is a Parse.Error with an error code and description.
alert("Error: " + error.code + " " + error.message);
}
});


});

});
});

},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});

}

最佳答案

status: results[i].get('status').id

您收到该错误是因为您尝试对 results[i] 调用 get,而该 results[i] 未定义,因为 i 未定义。

此外,该行本身不是有效的表达式。如果您想将某些内容分配给名为“status”的变量,这是正确的语法:

var status = ...

此外,您似乎将状态视为一个对象,而不仅仅是一个字段。

status: results[i].get('status')

当您稍后想要更改状态时,需要保留对原始获取对象的引用。例如:

friends.push({
imageURL: results[i].get('toUser').get('pic'),
friendRequestId: results[i].id,
username: results[i].get('toUser').get('username'),
userId: results[i].get('toUser').id,
status: results[i].get('status'),
fetchedObject: results[i]
});

稍后当您想要将该对象的状态设置为拒绝时:

item.fetchedObject.set("status", "Declined");

这是您要保存的 fetchedObject:

item.fetchedObject.save( // );

关于javascript - 单击按钮后如何更新解析中的现有对象? (JavaScript SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com