AngularJS의 컨트롤러 기능 오류: 문제 해결을 위한 종합 가이드
AngularJS로 작업할 때 다음과 같은 오류가 발생할 수 있습니다. 컨트롤러는 함수가 아닙니다. 이 오류는 일반적으로 컨트롤러를 전역적으로 정의하려고 할 때 발생하며 이는 AngularJS 1.3에서는 더 이상 허용되지 않습니다. 이 문제를 해결하려면 module.controller 구문을 사용하여 컨트롤러를 명시적으로 등록해야 합니다.
해결책 1: module.controller 구문을 사용하여 컨트롤러 등록
컨트롤러를 정의하려면 module.controller 구문을 사용하여 다음 단계를 따르세요.
angular.module('app', []) .controller('ContactController', ['$scope', function ContactController($scope) { // Controller logic here }]);
해결책 2: $inject 주석 및 AngularJS 1.3.5 사용
AngularJS 버전 1.3.5 이상의 경우 $inject 주석을 사용하여 컨트롤러에 대한 종속성을 정의할 수 있습니다. 이 주석은 컨트롤러 기능의 상단에 배치되어야 합니다.
function ContactController($scope) { $scope.contacts = ["[email protected]", "[email protected]"]; $scope.add = function() { $scope.contacts.push($scope.newcontact); $scope.newcontact = ""; }; } ContactController.$inject = ['$scope']; angular.module('app', []).controller('ContactController', ContactController);
전역 컨트롤러 다시 활성화(선택 사항)
AngularJS 1.3은 엄격한 범위 지정을 시행합니다. 전역 컨트롤러 선언. 그러나 모듈 구성에서 AllowGlobals 옵션을 사용하여 전역 컨트롤러를 다시 활성화할 수 있습니다.
angular.module('app') .config(['$controllerProvider', function($controllerProvider) { $controllerProvider.allowGlobals(); }]);
추가 고려 사항:
이러한 해결 방법을 따르면 "컨트롤러가 아닌 컨트롤러" 문제를 성공적으로 해결할 수 있습니다. AngularJS에서 function' 오류를 수정하고 컨트롤러를 효과적으로 정의하세요.
위 내용은 내 AngularJS 컨트롤러가 함수가 아닌 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!