23

我也在尝试引导一个 angular.js 项目。这是我的 index.html:

<!doctype html>
<html ng-app="myapp">
<head>
    <meta charset="utf-8">
    <base href="{% url 'app' %}" />

    <title>Project</title>
</head>
<body>
    <div ng-view>
        <p>Loading...</p>
    </div>

    <script>
        var url = function(path) { return '{{ STATIC_URL }}' + path };
    </script>
    <script src="{{ STATIC_URL }}js/jquery-1.10.1.js"></script>
    <script src="{{ STATIC_URL }}js/angular.js"></script>
    <script src="{{ STATIC_URL }}js/project/app.js"></script>
    <script src="{{ STATIC_URL }}js/project/controllers.js"></script>
</body>
</html>

例如url 'app',头上的 仅打印子路径 /app。这是我的 app.js:

'use strict';

var app = angular.module('myapp', []);

app.config(['$routeProvider', function($router) {
    $router.when('/', {
        templateUrl: url('partials/foo.html'),
        controller: controllers.Foo
    });
}]);

问题是,每次我尝试运行它时,都会引发一个异常:Uncaught Error: No module: myapp,这几乎与angular-seed 的工作方式相同。我在 Google 和 StackOverflow 上进行了搜索,但没有一个答案()对我有帮助。

这是关于我的错误的小提琴(你应该打开浏览器的控制台来查看它)。怎么了?

4

6 回答 6

40

脚本的顺序很重要,试着把它放在你的<head>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script>
    var app = angular.module('myapp', []);

    app.controller('Ctrl', function($scope){
        $scope.variable = "Hello";
    });
</script>
<body ng-app="myapp">
    <div ng-controller="Ctrl">
        <p>{{variable}}</p>
    </div>    
</body>

在这里试试:

http://jsfiddle.net/vvfnN/2/

于 2013-06-24T19:43:19.400 回答
10

补充AlexCheuk的回答,我意识到我的 app.js 文件涉及到一个闭包:

(function($) {
    'use strict';

    // all angular.js stuff
)(jQuery);

移除它起作用的关闭(不改变亚历克斯所说的订单)!我不知道确切的原因,但没关系。

于 2013-06-24T19:54:02.243 回答
2

我面临同样的问题,但上述技巧都没有对我有用,但这个,请参阅图像中的设置

从“OnLoad”更改为“No wrap -”

在此处输入图像描述

于 2016-09-01T02:34:18.880 回答
0

在我使用 IIFE 表示法的情况下,我忘记了自调用括号。

(function () {
     angular.module("adminApp", []); 
}() //don't forget self invoke parentheses
);  
于 2015-06-11T19:43:58.040 回答
0

我遇到了同样的错误,但我犯了一个愚蠢的错误,我没有在我的 jsp 页面中包含 controller.js 文件。刚刚包括这个:

<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/controller.js"></script>

它工作得很好。

于 2017-11-22T04:42:43.573 回答
-4

我在运行 Yeoman/grunt 服务器时遇到了类似的问题。为我解决的问题是重新启动 grunt 服务器。

于 2013-08-21T21:22:24.750 回答