查询首先有效,但查找无效
Query first works but find does not
我正在使用 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) {....
我认为这会更慢。还想知道正确的密码??
在向 Whosebug 和 back4app.com 搜索并提问后,我找到了自己的解决方法(我所有的问题都收到了很少的反馈)。
我使用了 REST。 "greaterthan" (#gt) 日期有点棘手。我在 Whosebug 上找到了工作语法。还有 "Just remember to use https://parseapi.back4app.com/ endpoint instead of https://api.parse.com/1/" 来自 Davi Macedo,我在 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);
});
这很有效,我的查询完全可以替换损坏的查找查询。
我正在使用 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) {....
我认为这会更慢。还想知道正确的密码??
在向 Whosebug 和 back4app.com 搜索并提问后,我找到了自己的解决方法(我所有的问题都收到了很少的反馈)。
我使用了 REST。 "greaterthan" (#gt) 日期有点棘手。我在 Whosebug 上找到了工作语法。还有 "Just remember to use https://parseapi.back4app.com/ endpoint instead of https://api.parse.com/1/" 来自 Davi Macedo,我在 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);
});
这很有效,我的查询完全可以替换损坏的查找查询。