Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 从Parse.Query.get文档返回的gameScore Parse.Object对象提供了未定义的gameScore对象_Backbone.js_Parse Platform - Fatal编程技术网

Backbone.js 从Parse.Query.get文档返回的gameScore Parse.Object对象提供了未定义的gameScore对象

Backbone.js 从Parse.Query.get文档返回的gameScore Parse.Object对象提供了未定义的gameScore对象,backbone.js,parse-platform,Backbone.js,Parse Platform,直接来自: 基本上给出了未捕获的引用错误:游戏分数未定义 以下是我的代码,用于解决此问题: // Retrieve class var GameScore = Parse.Object.extend("GameScore"); //redefine the GameScore class based on the cloud. var query = new Parse.Query(GameScore); var my_object; var some_object = query.get("S

直接来自:

基本上给出了未捕获的引用错误:游戏分数未定义

以下是我的代码,用于解决此问题:

// Retrieve class
var GameScore = Parse.Object.extend("GameScore"); //redefine the GameScore class based on the cloud.
var query = new Parse.Query(GameScore);
var my_object;
var some_object = query.get("SQV1DZXv5p", {
    success: function(gameScore) { //gameScore is the retrieved object.
        alert('Object retrieved, with object ID: ' + gameScore.id);
        //document.getElementById('division1').innerHTML = gameScore.id; 
        my_object = gameScore.id;

    }, 
    error: function(object, error) {
        alert('Retrieval FAILURE, error: ' + error.message + '; Object retrieved instead is: ' + object); //object will be NULL if not found.
    }
});

var score = gameScore;
document.getElementById('division1').innerHTML = my_object;
因此这仍然会抛出
gameScore
的参考错误。 另外,
document.getELementById
语句不会在my
division1
div中打印
gameScore.id
。它仍然为空。但是当我检查javascript控制台中的
my_object
时,它会正确返回
gameScore.id

有趣的是,如果我在success函数中运行
document.getELementById
行,那么它将显示
gameScore.id

执行以下操作:

var GameScore = Parse.Object.extend("GameScore");
var query = new Parse.Query(GameScore);
query.get("xWMyZ4YEGZ", {
  success: function(gameScore) {
    // The object was retrieved successfully.
    var score = gameScore.get("score");
    var playerName = gameScore.get("playerName");
    var cheatMode = gameScore.get("cheatMode");
  },
  error: function(object, error) {
    // The object was not retrieved successfully.
    // error is a Parse.Error with an error code and message.
  }
});
gameScore
仅在成功块的范围内可用,因此出现未捕获引用错误。成功街区之外的世界并不知道它的存在。把你的东西放在里面


另外,
.get()
会从服务器发出请求,因此需要时间才能完成。在
.get()
方法之后执行操作
gameScore
,将导致在尚未获取该对象时访问该对象,从而导致另一个错误。见下文@danh的评论。对于这样的网络调用,始终在完成块内对获取的对象执行操作。

另一种说法是,在.get()之前出现的代码首先运行,在.get()之后出现的代码在网络请求启动之前第二次运行,在success函数中出现的代码第三次运行,在网络请求完成后。谢谢各位。新的网络概念,但清晰。
var GameScore = Parse.Object.extend("GameScore");
var query = new Parse.Query(GameScore);
query.get("xWMyZ4YEGZ", {
  success: function(gameScore) {
    // The object was retrieved successfully.
    var score = gameScore.get("score");
    var playerName = gameScore.get("playerName");
    var cheatMode = gameScore.get("cheatMode");
  },
  error: function(object, error) {
    // The object was not retrieved successfully.
    // error is a Parse.Error with an error code and message.
  }
});