最近,我开始学习AngularJS并决定创建我的第一个AngularJS项目。 但是,我在html代码中初始化控制器时遇到了问题。
我收到以下错误:
angular.min.js:60 Error: Argument 'MainCTRL as ctrl' is not a function, got undefined
at qa (angular.min.js:16)
at ra (angular.min.js:16)
at angular.min.js:50
at angular.min.js:42
at m (angular.min.js:6)
at j (angular.min.js:42)
at e (angular.min.js:38)
at e (angular.min.js:38)
at e (angular.min.js:38)
at angular.min.js:37(anonymous function) @ angular.min.js:60(anonymous function) @ angular.min.js:51e.$apply @ angular.min.js:86(anonymous function) @ angular.min.js:15d @ angular.min.js:26qb @ angular.min.js:15kc @ angular.min.js:15(anonymous function) @ angular.min.js:158a @ angular.min.js:114(anonymous function) @ angular.min.js:23m @ angular.min.js:6c @ angular.min.js:22
此时我不想使用$ scope,并希望使用控制器别名继续执行此任务。使用$ scope它可以正常工作,但是,在使用"控制器作为"的情况下,我对解决问题非常感兴趣。形式
它是代码的一部分,其中存在错误:
<html lang="en" ng-app="blog">
<head>
<script src="template/assets/js/angular/angular.js"></script>
<script src="template/assets/js/controllers/app.js"></script>
<link rel="stylesheet" href="template/assets/template.css">
</head>
<main ng-controller="MainCTRL as ctrl">
<div class="stage">
<div class="prog-lang-container left">
<div class="prog-lang-container-inner">
<img class="prog-lang-img" src="#" alt="#">
<span class="prog-lang-name">
{{ctrl.name}}
</span>
</div>
</div>
...
</div>
</main>
...
</html>
这是我的app.js文件,它现在非常简单:
(function(){
var app = angular.module('blog',[]);
app.controller("MainCTRL", function(){
this.name = "TEST";
})
})()
我可能在代码
中遗漏了一些东西答案 0 :(得分:1)
我不完全理解为什么在使用缩小版本时会出现此问题,Lex在上面的评论中说过其中一个解决方案,并且它是使用非缩小的AngularJS文件。 感谢所有帮助过的人。
答案:
尝试引用Angular的非缩小版本以查看是否获得 更好的错误消息。 - Lex
答案 1 :(得分:0)
我已经复制了所有代码,并尝试使用cdn和下载版本的缩小的1.5.0 AngularJS文件,这一切都有效。因此,问题可能在于未包含的其余代码(...)或缩小的文件。尝试使用cdn来查看它是否有所不同。