为什么在切换查询的类后查询不返回结果?

时间:2014-05-24 07:28:59

标签: javascript parse-platform

Parse.com和JavaScript SDK。

从下面的答案更新

function friendFeed() {
    friendName = $('#friendsearch').val();
    console.log(friendName);
    var query = new Parse.Query(myBadges);

new Parse.Query("myBadges").matchesQuery("username", new Parse.Query("_User").equalTo("username", friendName))

    query.find({

对此毫无意义!下面的代码按预期方式工作,并在变量“myBadges”中使用_User类时返回用户但是

如果我将其交换为包含指向_User的指针的类myB​​adges,则不返回任何结果

我不明白为什么会发生这种情况?

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


// Captures the input from the user and checks if the name already exists within the Db.
function findFriend() {
    friendName = $('#friendsearch').val();
    console.log(friendName);
    var query = new Parse.Query(myBadges);
    //query.include("BadgeName");
    //ery.include('mtBadgesPOINTER');
    query.equalTo("username", friendName); // find users that match

    query.find({
        success: function (friendMatches) {

            $('#imgs').empty();
            $('#no_user').hide();
            // This section is always run, no matter the outcome. Depending on the input depends on which result is shown
            console.log(friendMatches);
            if (friendMatches.length === 0)
                $('#no_user').show();
            console.log('NO MATCH FOUND!!!')

        },
        error: function (error) {
            alert('Opps we have a problem' + error.message);
        }
    });

}

////////////////////////////////////////////////////////////

$('#find_button').click(function (e) {
    findFriend();
});

< /script>
<div id="imgs"></div >
    < img style = "display:none"
src = "/img/no-user.png"
id = "no_user"
alt = "No user found" >

enter image description here

1 个答案:

答案 0 :(得分:2)

这就是应该如何运作的。因为您已经从myBadges建立了一个指向User的指针,所以您还需要使用指针进行查询。传递用户名的字符串值不起作用,因为字符串不等于指针。

如果您使用用户名来查找徽章,则需要沿此行查询:

new Parse.Query("myBadges").matchesQuery("username", new Parse.Query("_User").equalTo("username", friendName))

使用复合查询来查找与给定username匹配的用户,然后使用myBadges,其中用户等于第一个查询的结果。