我一直在学习斯科特·艾伦的一套教程。我一直试图模仿他到底做了什么,我相信,然而,我的角度路线只是没有被执行。
我有一个名为main.html的视图和一个名为index.html的shell/布局视图。在index.html中,主体标记中有ng视图,我在一个名为app.js的脚本文件中有一个路由,如下所示:
(function(){
var app = angular.module("githubViewer", ["ngRoute"]);
app.config(function($routeProvider){
$routeProvider
.when("/main", {
templateUrl: "main.html",
controller: "MainController"
})
.when("/user/:username", {
templateUrl: "user.html",
controller: "UserController"
})
.otherwise({redirectTo:"/main"});
});
}());
下面是index.html的脚本导入
<script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
<script src="https://code.angularjs.org/1.2.20/angular-route.js"></script>
我知道路由没有被击中的方式是因为main.html的代码没有被传递回页面。
角度路线的使用方式是否发生了变化?
这里还有一个指向我的plunk的链接:http://plnkr.co/edit/Ew73QexRoDZlrvPG2UA1?p=preview
发布于 2014-08-20 10:04:17
您正在多次创建相同的角度模块。创建相同角度模块的次数只是失败。因此,只创建一次角模块,并在其他地方使用,如下所示
var app = angular.module('FirstModule'); // app.js
app.controller // controller.js
app.factory // service.js
app.directive // directives.js
这是更新的柱塞。
http://plnkr.co/edit/qWHkzj9v6nGhhb7MjDDf?p=preview
在创建闭包时,我将下面的自动执行函数更改为正常函数,在app.js中创建的模块在其他文件中不可用。
(function(){
}());
否则,您可以将在app.js中创建的模块作为参数传递给其他文件中的所有自动执行函数。
发布于 2014-08-20 10:06:10
修正了柱塞。您过去常常再次调用angular.module
,并将其作为setter调用,而不是将其用作getter。
编辑:我迟到了一分钟=),您可以使用Vikram的答案,完全删除包装闭包。如果您需要使用闭包,只需使用var app = angular.module("githubViewer");
而不是var app = angular.module("githubViewer", []);
,以避免覆盖模块定义。
https://stackoverflow.com/questions/25410318
复制