컨트롤러를 사용하여 $http
요청을하게 될 서비스를 호출하지만, 지금은 문자열을 반환하도록 서비스를 설정했습니다. 제대로 작동하고 올바르게 호출되는지 확인하십시오. 내가 그것을 실행하면Angularjs 컨트롤러 호출 서비스 - 함수가 아닌 경우 .success
, 나는 다음과 같은 오류가 발생합니다 :
TypeError: monitorData.requestEvent(...).success is not a function
아래
내 코드 :
컨트롤러
(function() {
angular
.module('monitorApp')
.controller('eventCtrl', eventCtrl);
eventCtrl.$inject = ['$scope', '$routeParams', 'monitorData'];
function eventCtrl($scope, $routeParams, monitorData) {
var vm = this;
vm.eventid = $routeParams.eventid;
vm.event = {};
vm.getData = function(eventid) {
console.log("getData variable accessed");
monitorData.requestEvent(eventid)
.success(function(data) {
console.log(data);
})
.error(function(e) {
console.log("Error");
});
return false;
};
vm.getData(vm.eventid);
}
})();
서비스
(function() {
angular
.module('monitorApp')
.service('monitorData', monitorData);
monitorData.$inject = ['$http'];
function monitorData($http) {
var requestEvent = function(eventid) {
var gas = "Event " + eventid + " requested.."
console.log(gas);
return gas;
};
return {
requestEvent : requestEvent,
};
}
})();
'$ q' 그리고 나서'defer.resolve'를 사용하여 작동하게하려면 – batmaniac7
'$ q'를 주입하고 가스 대신'$ q.when (gas)'를 반환하면 작동 할 것입니다. – DerekMT12
성공/오류 대신에/catch를 사용해야합니다. 성공/오류 처리기는 더 이상 사용되지 않습니다. – DerekMT12