1
對於我的應用程序,我創建了一個服務地址,它允許我操作任何給定用戶的地址對象。除了我的標準CRUD函數外,我還需要一個函數來列出指定Parse.User的任何地址。AngularJS +解析API調用服務不受userId約束
services.js
.factory('Address',['$http', 'PARSE_CREDENTIALS', function ($http,PARSE_CREDENTIALS) {
return {
// constrain to User ID
getAll: function(userId) {
return $http.get('https://api.parse.com/1/classes/Address', {
headers: {
'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID,
'X-Parse-REST-API-Key': PARSE_CREDENTIALS.REST_API_KEY,
'Content-Type' : 'application/json'
},
params: { "userId": userId }
});
},
// ...get(), edit(), add(), delete()
controllers.js
.controller('AddrCtrl', ['$scope', '$state', '$stateParams', '$rootScope', 'Address',
function($scope, $state, $stateParams, $rootScope, Address) {
Address.getAll($rootScope.user.id)
.success(function(data) {
console.log(data);
$scope.addresses = data.results;
})
}]);
在我的角模板,這個視圖返回地址的對象。但它返回全部 Address對象,它應該只返回具有相應userId的Address對象。爲了說明,Address類有一個userId指針列。每個地址只有一個用戶。
這裏是日誌消息AddrCtrl
返回控制檯:
Object {results: Array[2]}
results: Array[2]
0: Object
firstName: "(test)"
lastName: "test"
// more unrelated properties
objectId: "yUEuFjLlzs"
updatedAt: "2014-12-02T20:17:55.608Z"
userId: Object
__type: "Pointer"
className: "_User"
objectId: "q1KADkp4i1"
我假設的問題在於我的$ http.get()函數的地方。最終,我的問題是這樣的:爲什麼我的params
選項不會將我的data.results
限制爲僅與一個Parse.User關聯的Address對象?
答案我不是在尋找:
返回所有地址對象,並只保存那些匹配Parse.User.current()ID爲$範圍。