2014-04-04 29 views
0

我從parse.com angd get和2對象數組進行查詢。現在我想要用戶ng-reapet('phone in phone'),所以我需要將它轉換爲json。我沒有獲得這樣做。出於某種原因,它不會將結果視爲json。java腳本 - 使用parse.com查詢角ng - 重複

var Project = Parse.Object.extend("Project"); 
    var query = new Parse.Query(Project); 
    query.find({ 
     success: function (results) { 
      var allProjects = []; 
      for (var i = 0; i < results.length; i++) { 
       allProjects.push(results[i].toJSON()); 
      } 
      $scope.phones = allProjects; 
      //i also tried this :    $scope.phones = JSON.stringify(allProjects); 
     }, 
     error: function (error) { 
      alert("Error: " + error.code + " " + error.message); 
     } 
    }); 

感謝

回答

0

可能有更好的工具,frameworks使用。

第188行是取指。它會自動將模型的json加載到第47行定義的集合中。

在查詢結果中循環查詢結果中的條目是在框架中自動完成的,這樣您就可以通過學習相關框架節省大量時間(即主幹)。在主幹/分析中,您關注業務邏輯,而不是操縱網絡io和查詢結構。

「手機手機」從你的問題可能只是一個嵌套模式或嵌套收集其IMO可以通過基本的骨幹框架的更高級的操作處理。

1

不知道你是否已經知道了這一點,但我有一個類似的問題,並找到你的文章。我不知道你的HTML是什麼樣子,但是我最終使用Parse.Object的get方法在我的中繼器像這樣:

<ul ng-repeat="list in lists"> 
    <li> 
     <a ng-href="#/lists/{{list.id}}">{{list.get('title')}}</a> 
    </li> 
</ul> 

我也看了成使用的承諾,以便分析查詢成功回調實際上更新當您將$ scope.phones設置爲查詢結果時的視圖。我的代碼與你的代碼類似,但我的對象是List而不是Project。這裏是我的樣子:

// Define your Parse object 
var List = Parse.Object.extend('List'); 

// Define a function that runs your Parse query. Use an angular promise so that 
// the view updates when you set your $scope var equal to the query result 
function getList() { 
    var deferred = $q.defer(); 
    var query = new Parse.Query(List); 

    query.find({ 
     success: function(results) { 
      deferred.resolve(results); 
     }, 
     error: function(error) { 
      deferred.reject(error.message); 
     } 
    }); 

    return deferred.promise; 
} 

// Call the getList function on load 
var promise = getLists(); 
promise.then(function(lists) { 
    $scope.lists = lists; 
}); 

所以基本上,這不是說Angular沒有看到答案的權利。您不應該以任何方式修改Parse的結果。它只是你需要使用Parse.Object get方法就像你,如果你在訪問對象的屬性,並確保您使用的承諾,使角訪問您的查詢結果,因爲它應該在視圖中。

1

不要在你的角度代碼中使用不用彷徨功能上解析,它不工作更多,再加上它不是一個好主意,改變你的角度代碼,因爲你的目標是三級嵌套,並需要一個get方法。

正確的方法是延長對象,然後將值映射回你的這個類需要的任何物品。 然後你就可以正常到NG-重複綁定在沒有明確改變你的HTML代碼的解析。

var Game = Parse.Object.extend("Game"); 
var query = new Parse.Query(Game); 
query.find({ 
success: function(results) { 
    $scope.$apply(function() { 
    $scope.games = results.map(function(obj) { 
    return {points: obj.get("points"), gameDate: obj.get("gameDate"), parseObject: obj}; 
    }); 
}); 
}, 

error: function(error) { 
    console.log(error); 
} 
+0

所述的parseObject不存在。任何想法如何解決它? – lito