AngularJS"控制器为"语法错误

时间:2016-03-17 18:16:47

标签: javascript angularjs controller

最近,我开始学习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";
    })
})()

我可能在代码

中遗漏了一些东西

2 个答案:

答案 0 :(得分:1)

我不完全理解为什么在使用缩小版本时会出现此问题,Lex在上面的评论中说过其中一个解决方案,并且它是使用非缩小的AngularJS文件。 感谢所有帮助过的人。

答案:

  

尝试引用Angular的非缩小版本以查看是否获得   更好的错误消息。 - Lex

答案 1 :(得分:0)

我已经复制了所有代码,并尝试使用cdn和下载版本的缩小的1.5.0 AngularJS文件,这一切都有效。因此,问题可能在于未包含的其余代码(...)或缩小的文件。尝试使用cdn来查看它是否有所不同。