반응형
'MainController' 인수가 함수가 아니며 AngularJS에서 정의되지 않았습니다.
여기 나의 HTML과 JS파일이 있습니다.
HTML 파일
<!DOCTYPE html>
<html ng-app="">
<head>
<!--Works with latest Stable Build-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<!--Does not work with Latest Beta-->
<!--UNCOMMENT ME! <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.18/angular.min.js"></script>-->
<script src="script.js"></script>
</head>
<body ng-controller="MainController">
<h1>Angular Playground</h1>
{{message}}
<br />Total Length: {{message.length}}
</body>
</html>
자바스크립트 파일
var MainController = function($scope) {
$scope.message = "Hello, Michael";
};
최신 스테이블 빌드를 사용하면 다음과 같은 결과를 얻을 수 있습니다(분명히 정확합니다).
각운동장
안녕하세요 마이클 총길이: 14
하지만 베타 18을 사용하면 다음과 같은 오류가 발생합니다.
오류: [ng:areq] 'MainController' 인수가 함수가 아닙니다. 정의되지 않았습니다.
페이지는 다음을 반환합니다.
각운동장 #2
{{message}} 총길이: {message.length}
무슨 생각 있어요? 뭐가 원인일까요?
Angular(>1.3.0)의 최신 버전에서는 글로벌 컨스트럭터 함수를 선언할 수 없고 ng-controller와 함께 사용할 수 없습니다.
빠른 수정 방법은 각도 모듈을 만들고 메인 컨트롤러를 컨트롤러로 추가하는 것입니다.
기능이 전역으로 추가되는 것을 방지하기 위해 메인 컨트롤러를 IIFE에 래핑했습니다.
(function() {
angular
.module("appName", [])
.controller("MainController", MainController);
MainController.$inject = ["$scope"];
function MainController($scope) {
$scope.message = "Hello, Michael";
};
})();
HTML에서 ng-app 지시문에 각도 모듈의 이름을 추가해야 합니다.
<!DOCTYPE html>
<html ng-app="appName">
<head>
<!--Works with latest Stable Build-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<!--Does not work with Latest Beta-->
<!--UNCOMMENT ME! <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.18/angular.min.js"></script>-->
<script src="script.js"></script>
</head>
<body ng-controller="MainController">
<h1>Angular Playground</h1>
{{message}}
<br />Total Length: {{message.length}}
</body>
</html>
언급URL : https://stackoverflow.com/questions/25392876/argument-maincontroller-is-not-a-function-got-undefined-in-angularjs
반응형
'programing' 카테고리의 다른 글
node.js는 JS 대신 커피스크립트를 사용할 수 있습니까? (0) | 2023.09.27 |
---|---|
집중적인 내용 편집 사전 영역의 테두리를 제거하려면 어떻게 해야 합니까? (0) | 2023.09.27 |
오라클 더 빠른 페이징 쿼리 (0) | 2023.09.27 |
IN 절에서 Oracle Table Type을 사용하면 컴파일이 실패함 (0) | 2023.09.27 |
jQuery : eq() vs get() (0) | 2023.09.27 |