Я хочу отправить некоторые параметры для выполнения GET на моем сервере, а также должен быть в моем URL-адресе (collabId
).
Вот моя услуга:
/* Service */
angular.module('app').factory('CollabService', function($resource) {
return $resource('/collabs/:collabId', {collabId:'@collabId'}, {
getCollabs: {
method: 'GET',
headers: {'Content-Type': 'application/json'},
isArray: true
}
});
});
Вот мой контроллер. Я хочу отправить параметры в $scope.q
и collabId
URL в URL.
Я пробовал это, но он не работает (400 Bad Request
):
/* Controller */
$scope.q = {
"collabId": 30;
"firstWeek": 1;
"nbWeeks": 4;
"year": 2015
};
CollabService.getCollabs($scope.q, {collabId: $scope.q.collabId},
function(col) { //Print result
console.log(col);
});
Я думаю, что я пропустил что-то в синтаксисе моего запроса в своем контроллере. Можете ли вы помочь мне найти, что здесь не так?
Благодаря :)
В CollabService
есть ошибка. Здесь вы передаете весь объект $scope.q
:
CollabService.getCollabs($scope.q, {collabId: $scope.q.collabId},
function(col) { //Print result
console.log(col);
});
Его следует изменить на:
CollabService.getCollabs({collabId: $scope.q.collabId}, // <--
function(col) { //Print result
console.log(col);
});
Это хорошо работает, вы должны попробовать:
//Обслуживание
angular.module('app')
.factory('CollabService', function($resource) {
return $resource('/collabs/:collabId', {collabId:'@collabId'});
});
//Контроллер
scope.q = {};
$scope.q.collabId = 30;
$scope.q.firstWeek = 1;
$scope.q.nbWeeks = 4;
$scope.q.year = 2015;
CollabService.get($scope.q,
function(col) { //Print result
console.log(col);
});
В предыдущем решении была небольшая ошибка. Я немного переработал его и смог заставить это работать для меня.
// Factory
angular.module('app')
.factory('CollabService', function($resource) {
return $resource('/collabs/:collabId',
{collabId: '@collabId'},
{query: {
method: 'GET',
headers: {'Content-Type': 'application/json'},
isArray: true
}
});
});
// Controller
var q = {};
q.collabId = 30;
...
// Query
CollabService.query({collabId: q.collabId}, function(promisedData) {
// Promised data
console.log(promisedData);
});
Это должно работать:
// Service
angular.module('app')
.factory('CollabService', function($resource) {
return $resource('/collabs/:collabId', {collabId:'@collabId'}, {
query: {
method: 'GET',
headers: {'Content-Type': 'application/json'},
isArray: true
}
});
});
// Controller
var q = {};
q.collabId = 30;
q.firstWeek = 1;
q.nbWeeks = 4;
q.year = 2015;
// Get
CollabService.get({collabId: q.collabId}, function(col) {
//Print result
console.log(col);
});
// Query
CollabService.query(q, function(col) {
//Print result
console.log(col);
});