java脚本 - 使用带角度ng-repeat的parse.com查询

时间:2014-04-04 08:24:25

标签: javascript angularjs parse-platform

我从parse.com中查询angd get和2个对象的数组。现在我想用ng-reapet('手机中的电话'),所以我需要将它转换为json。我没有做到这一点。由于某种原因,它不会将结果视为json。

  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);
      }
  });

由于

3 个答案:

答案 0 :(得分:1)

不确定你是否已经弄清楚这一点,但我遇到了类似的问题并找到了你的帖子。我不确定你的HTML是什么样的,但我最后在我的转发器中使用了Parse.Object的get方法,如下所示:

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

我还研究了如何使用promises,以便在将$ scope.phones设置为查询结果时,Parse查询成功回调实际上会更新视图。我的代码与您的代码类似,但我的对象是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方法,并确保使用promise,以便Angular在视图中访问查询结果。

答案 1 :(得分:1)

不要在你的角度代码中使用.get函数,它不再工作,加上改变你的角度代码不是一个好主意,因为你的对象是三层嵌套的,需要一个get方法。

正确的方法是扩展对象,然后将值映射回该类中所需的任何项目。 然后你可以正常绑定到ng-repeat而不用专门为Parse更改你的html代码。

{{1}}

答案 2 :(得分:0)

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

第188行是获取。它会自动将模型的json加载到第47行定义的集合中。

在解析中查询结果中的条目在框架中全部自动化,这样您就可以通过学习相关框架(即主干)来节省大量时间。在骨干/解析上,您专注于业务逻辑,而不是操纵网络io和查询结构。

&#39;手机电话&#39;从你的问题可能只是一个嵌套模型或嵌套集合,IMO可以通过更先进的基本骨干框架操作来处理。