이 질문에 답을 얻었으나 정직하게 말하면 내 프로그램의 맥락에서 답변의 머리 나 꼬리를 만들 수 없습니다. 내 컨트롤러 레지스터 기능을 사용하려고하는 경우를 제외하고,Angular app의 서비스가 정의되지 않았습니다
(function() {
angular
.module('datingApp')
.service('authentication', authentication);
authentication.$inject = ['$window'];
authentication.$inject = ['$http'];
function authentication($window, $http) {
var saveToken = function(token) {
$window.localStorage['token'] = token;
};
var getToken = function() {
return $window.localStorage['token'];
};
var register = function($http, user) {
return $http({
method: 'post',
url: '/users/register',
data: user
})
};
...
return {
saveToken: saveToken,
getToken: getToken,
register: register
}
}
모든 좋은 팝업 "정의의 '등록'속성을 읽을 수 없습니다": 내 서비스는 것 같습니다. 함수 중 아무 것도 작동하지 않습니다. 심지어 내가 작성한 더미 함수도 있습니다.
내 컨트롤러는 다음과 같습니다
angular.module('datingApp').component('signupForm', {
templateUrl: '/public/templates/signup.html',
controller: function signupCtrl($scope, authentication) {
//using an immediate function to generate ages 18-99
$scope.saveData = function(authentication) {
...
authentication.register(x).then(function() { console.log("user saved") }, function() { console.log("failure") });
};
오류 스택은 이것이다 : 내가 잘못
ypeError: Cannot read property 'register' of undefined
at m.$scope.saveData (signup.form.component.js:72)
at fn (eval at compile (angular.min.js:1), <anonymous>:4:215)
at b (angular.js:15694)
at e (angular.js:25622)
at m.$eval (angular.js:17444)
at m.$apply (angular.js:17544)
at HTMLButtonElement.<anonymous> (angular.js:25627)
at HTMLButtonElement.dispatch (jquery.min.js:3)
at HTMLButtonElement.q.handle (jquery.min.js:3)
을 뭐하는 거지?
당신이 각도 가져 오는 이러한 2 개 라인을 결합 할 수 있습니다? – baranskistad
예, 내 서비스. –