2015-01-10 2 views
2

В Parse У меня есть таблица User, настроенная с несколькими столбцами, большинство из которых являются Strings, но один является указателем на другой класс parse. Я хочу использовать этот указатель в запросеParse retrieve pointer от текущего пользователя в javascript

В Java я могу получить доступ указатель использовать в моем запросе следующим образом:

ParseUser currentUser = ParseUser.getCurrentUser(); 
ParseObject comParent = currentUser.getParseObject("ComParent"); 

В JavaScript Я попытался с помощью:

var currentUser = Parse.User.current(); 
var comParent = currentUser.get("ComParent"); 

Но это возвращает undefined. Что я делаю не так?

ответ

7

According to the documentation:

«По умолчанию при извлечении объекта, связанные с Parse.Objects не извлекается значение этих объектов не может быть восстановлено, пока они не были извлечены так:.»

var post = fetchedComment.get("parent"); 
post.fetch({ 
    success: function(post) { 
    var title = post.get("title"); 

    } 
}); 

Таким образом, вы должны написать:

var currentUser = Parse.User.current(); 
var comParent = currentUser.get("ComParent"); 
comParent.fetch({ 
    success: function(comParent) { 
     var name = comParent.get("Name"); 
     alert(name); // this one will work 
    } 
}); 
alert(comParent.get("Name")); // this one wont work, see below 

Просто помните, что success является асинхронный ronous обратного вызова, как таковые comParent не будет доступен за пределами функции success, как показан выше, если вам нужно получить доступ comParent за пределы success заканчивало https://stackoverflow.com/a/27673839/1376624

1

Спасибо. Моя проблема состояла из двух вещей. Во-первых, я неправильно выбрал объект, как вы правильно указали. Во-вторых, я пытался получить объект от пользователя, у которого не было связанного объекта ComParent (Doh!). В любом случае, ваше решение поставить меня на необходимость извлечения объекта, но я не думаю, что это CurrentUser, который должен иметь выборки, это comParent:

var currentUser = Parse.User.current(); 
var comParent = currentUser.get("ComParent"); 
    comParent.fetch({ 
     success: function(comParent) { 
      var name = comParent.get("Name"); 
      alert(name); 
     } 
    }); 

Еще раз спасибо @ DelightedD0D

Смежные вопросы