AngularJS를 처음 사용했습니다. 배우려는 노력에서 AngularJS 자습서에 의존했습니다. 이제 AngularSeed 프로젝트 템플릿을 사용하여 앱을 제작하려고합니다. 가능한 한 모듈 식으로 프로젝트를 만들려고합니다. 이런 이유로 내 컨트롤러는 여러 파일로 나뉩니다.각도로 모듈로드
'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 파일이 순간에 매우 기본적인 :
/app
index.html
login.html
home.html
javascript
app.js
loginCtrl.js
homeCtrl.js
내 app.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이 정의되지 않았습니다.'라는 오류가 표시됩니다. 때로는 homeCtrl.js에서 발생합니다.
내가 뭘 잘못하고 있니? 모듈에 내 컨트롤러가 있어야하고 app.js 파일의 app.config에 해당 모듈을 전달해야하는 것처럼 느껴집니다. 그러나, a) 허용되는지 b) 나는 그것을하는 법을 모르겠습니다.
다음 링크를 참조하십시오. 제공자에게 '해결'을 추가하십시오. http://stackoverflow.com/questions/11972026/delaying-angularjs-route-change-until-model-loaded-to-prevent-flicker –
It 나를 위해 일하는 것 같다. 어떤 서버를 사용하고 있습니까? login.html은 어떤 모습입니까? – vinaut