我是AngularJS的新手。在我的学习努力中,我依赖于AngularJS教程。现在,我正在尝试使用AngularSeed项目模板构建一个应用程序。我试图让我的项目尽可能模块化。出于这个原因,我的控制器分成几个文件。目前,我有以下几点:在Angular中加载模块
/app
index.html
login.html
home.html
javascript
app.js
loginCtrl.js
homeCtrl.js
我app.js文件有以下几点:
'use strict';
var app = angular.module('site', ['ngRoute']);
app.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/login', {templateUrl: 'app/login.html', controller:'loginCtrl'});
$routeProvider.when('/home', {templateUrl: 'app/home.html', controller:'homeCtrl'});
$routeProvider.otherwise({redirectTo: '/login'});
});
我loginCtrl.js文件当时是非常基本的。它只有:
'use strict';
app.controller('loginCtrl',
function loginCtrl($scope) {
}
);
我的homeCtrl.js几乎是相同的,除了名称。它看起来像如下:
'use strict';
app.controller('homeCtrl',
function homeCtrl($scope) {
}
);
我的index.html文件是angularSeed index-async.html文件。然而,当我加载的依赖关系,我有以下几点:
// load all of the dependencies asynchronously.
$script([
'http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.3/angular.min.js',
'http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.3/angular-route.min.js',
'javascript/app.js',
'javascript/loginCtrl.js',
'javascript/homeCtrl.js'
], function() {
// when all is done, execute bootstrap angular application
angular.bootstrap(document, ['site']);
});
我的问题是,有时我的应用程序工作,有时没有。这几乎就像什么东西在别的之前被加载。
有时,我收到这个error。其他时候,我在控制台窗口中收到一个错误信息:loginCtrl.js中显示'Uncaught ReferenceError:app is not defined'。有时它发生在homeCtrl.js中。
我在做什么错?感觉就像我需要在模块中放置我的控制器,并在app.js文件的app.config中传递该模块。但是,a)我不确定是否允许,b)我不知道如何去做。
看到这个链接,可能会帮助你,将'resolve'添加到提供者:http://stackoverflow.com/questions/11972026/delaying-angularjs-route-change-until-model-loaded-to-prevent-flicker –
它似乎正在为我工作。你使用什么服务器? login.html的外观如何? – vinaut