Использование $inject в сервисе приводит к ошибке. Ошибка: [$http:badreq] - Angular JS
Есть регистрационная форма. При отправке регистрационной формы я пытаюсь сохранить данные через угловой сервис. Это дает мне ошибку Ошибка: [$http:badreq]
Это мой register.controller.js
(function(){
var app = angular.module('myapp');
app.controller('RegisterController',RegisterController);
RegisterController.$inject = ['UserService', '$location','$rootScope'];
function RegisterController(UserService, $location, $rootScope) {
var vm = this;
vm.register = register;
function register(){
UserService.Create(vm.user)
.then(function(response)
{
if(response.success){
}else{
}
});
}
};
})();
Вот пользовательский сервис
(function () {
'use strict';
angular
.module('myapp')
.factory('UserService', UserService);
UserService.$inject = ['$timeout', '$filter', '$q', '$http'];
function UserService($timeout, $filter, $q, $http) {
var service = {};
service.Create = Create;
return service;
var url='ajax.php';
function Create(user) {
$http({
method: 'post',
url: url,
data: user,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).
success(function(data, status, headers, config) {
console.log(data);
}).
error(function(data, status, headers, config) {
console.log(data);
});
}
}
})();
В чем проблема с кодом. Пожалуйста помоги. заранее спасибо
1 ответ
Ты используешь return service;
до определения URL, поэтому сервис $http получает неопределенный вместо URL. Решение состоит в том, чтобы переместить оператор возврата в последнюю из сервисных функций, например:
(function () {
'use strict';
angular
.module('myapp')
.factory('UserService', UserService);
UserService.$inject = ['$timeout', '$filter', '$q', '$http'];
function UserService($timeout, $filter, $q, $http) {
var service = {};
service.Create = Create;
var url='ajax.php';
function Create(user) {
$http({
method: 'post',
url: url,
data: user,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).
success(function(data, status, headers, config) {
console.log(data);
}).
error(function(data, status, headers, config) {
console.log(data);
});
}
return service;
}
})();