查询首先有效但找不到

时间:2016-08-07 06:00:09

标签: javascript angularjs parse-platform back4app

我正在使用angularjs和parse.com来查询spotlight = true的三名成员。

当我第一次使用它时会找到一个,但当我使用limit(3)查找它时,它什么都找不到。我甚至删除了Limit(3)但仍然没有删除。我在网上搜索过,尝试了一些我发现仍然没有结果的东西。

    app.controller('spotlightCtrl', function($scope, $q) {

    $scope.sl = {};
    $scope.slmemid = "";

    Parse.initialize("xxx", "xxx");
    Parse.serverURL = 'https://parseapi.back4app.com';
    var ArticleDfd = $q.defer();
    var members = Parse.Object.extend('members');
    var query = new Parse.Query(members);
    query.equalTo("spotlight", true);
        query.first().then(function (data) {
 //query.find().then(function (data) {      -----this find does not return results.
            ArticleDfd.resolve(data);
            }, function (error) {
            ArticleDfd.reject(data);
             console.log(error);
            });
            ArticleDfd.promise
            .then(function (article) {
                $scope.sl = article.attributes;
                $scope.slmemid = article.id;
              console.log(article);
            })
            .catch(function (error) {
                //do something with the error
             console.log(error);
            });

});

仍然在寻找一种方法来做到这一点。 我找到了一个解决方法。我使用skip()函数并生成三个控制器。

app.controller('spotlightCtrl1', function($scope, $q) {.....
    .....
    query.equalTo("spotlight", true);
    query.first().then(function (data) {

app.controller('spotlightCtrl2', function($scope, $q) {......
    .....
    query.equalTo("spotlight", true).skip(1);
    query.first().then(function (data) {...

app.controller('spotlightCtrl3', function($scope, $q) {......
    .....
    query.equalTo("spotlight", true).skip(2);
    query.first().then(function (data) {....

我认为这会慢一点。还是想知道正确的代码??

1 个答案:

答案 0 :(得分:0)

在搜索并向Stackoverflow和back4app.com提问后,我找到了自己的工作(我的所有问题都收到的反馈很少)。

我使用REST。 “greaterthan”(#gt)日期有一个棘手的问题。我在stackoverflow上找到了工作语法。此外,“请记住使用来自Davi Macedo的https://parseapi.back4app.com/端点,而不是https://api.parse.com/1/”,这是我在搜索Google网上论坛时遇到的。

$http({
      method: 'GET',
      url: ' https://parseapi.back4app.com/classes/Events',
      headers: {
        'X-Parse-Application-Id' : 'xxxx',
        'X-Parse-REST-API-Key' : 'xxxx',
        'Content-Type' : 'application/json'
      },
      params:  { 
                 where: {
                     'Luncheon': true,
                     'eventDate':{'$gt': {
                     "__type":"Date", "iso": currentTime
                        }
                     }
                 },
                 order: 'eventDate',
                 limit: 2
              }
    }).then(function successCallback(response) {
        // this callback will be called asynchronously
        // when the response is available
        $scope.events = response.data.results;

      }, function errorCallback(response) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
        console.log(response);
  });

这个效果很好,我的查询完全可以替换破坏的查找查询。