AngularJS无法识别控制器

AngularJS not recognizing controller

本文关键字:控制器 识别 AngularJS      更新时间:2023-09-26

所以我已经知道,当我看到答案时,我会感到非常愚蠢,但我正在egghead.io上学习AngularJS教程。当我这样做时:

<!DOCTYPE html>
<html>
    <head>
        <title>AngularJS Tutorials</title>
        <link rel="stylesheet" href="/foundation/stylesheets/foundation.min.css">
        <script src="js/main.js"></script>
        <script src="lib/angular/angular.js"></script>
    </body>
    </head>
    <body>
        <div ng-app="myApp">
            <div ng-controller="FirstCtrl">
                <input type="text" ng-model="data.message">
                <h1>{{ data.message }}</h1>
            </div>
            <div ng-controller="SecondCtrl">
                <input type="text" ng-model="data.message">
                <h1>{{ data.message }}</h1>
            </div>
        </div>  
</html>

使用我的JavaScript文件(命名为main.js):

var myApp = angular.module('myApp', []);
myApp.factory('Data', function() {
    return { message: "I'm data from a service"}
})
function FirstCtrl($scope, Data) {
    $scope.data = Data;
}
function SecondCtrl($scope, Data) {
    $scope.data = Data;
}

我的{{ data.message }}未被识别为AngularJS绑定(即在页面中显示为
CCD_ 2而不是CCD_ 3)。但是,如果我把所有的JS代码直接放在HTML中的<script></script>标记中,它就可以正常工作。我是不是错过了推荐信?似乎在任何地方都找不到这个,可能是因为它真的很基本。

我要跳枪并建议您切换这些

<script src="js/main.js"></script>
<script src="lib/angular/angular.js"></script>

<script src="lib/angular/angular.js"></script>
<script src="js/main.js"></script>

如果这是有效的,那是因为在您尝试使用angular之前,它没有被事件加载。


提示


现在,当我刚开始使用javascript时,这类事情经常发生在我身上。对你来说,最好的办法是学习如何使用console,它会在控制台中告诉你一些类似cannot read property 'module' of undefined的东西,这意味着angularundefined,因此没有加载。

在控制器之前加载Angular,而不是在之后

行之间的切换:

<script src="js/main.js"></script>
<script src="lib/angular/angular.js"></script>

您需要在angular加载后运行main.js