2014-04-23 2 views
0

어떤 이유로 Angular 사이트가 작동하지 않습니다. 모든 파일을 포함했습니다. 그러나 어떤 이유로 앵글이 트리거되지 않습니다.Angularjs 앱이 실행되지 않았습니다.

이 내 index.html이 같은 모습입니다 :

<!DOCTYPE html> 
<html ng-app="ngTest"> 
<head> 
    <title></title> 
</head> 
<body> 
    <h2>Test</h2> 

    <ng-view></ng-view> 

    <script src="Scripts/jquery-1.9.1.min.js"></script> 
    <script src="Scripts/angular.js"></script> 
    <script src="Scripts/angular-resource.js"></script> 
    <script src="Scripts/angular-route.js"></script> 
    <script src="Scripts/angular-animate.js"></script> 

    <script src="app/app.js"></script> 
    <script src="app/controllers/home/HomeCtrl.js"></script> 
</body> 
</html> 

모든 스크립트 개발자 콘솔에서 200을 반환 포함, 그래서 나는 그들이 잘로드 확신합니다.

그런 다음 내 app.js은 다음과 같습니다

window.app = angular.module('ngTest', ['ngRoute', 'ngResource', 'ngAnimate']); 
app.config(['$routeProvider', '$locationProvider', '$httpProvider', '$provide', function ($routeProvider, $locationProvider, $httpProvider, $provide) { 
    $httpProvider.defaults.useXDomain = true; 
    delete $httpProvider.defaults.headers.common['X-Requested-With']; 
    $httpProvider.defaults.useXDomain = true; 
    $locationProvider.html5Mode(true); 
    $routeProvider 
     .when('/Home', { templateUrl: '/app/views/home/Home.html', controller: 'HomeCtrl' }) 
     .otherwise({ redirectTo: '/Login' }); 
}]); 

HomeCtrl.js 단순히이 아이크 같습니다

app.controller('HomeCtrl', ['$scope', function ($scope) { 
    init(); 
    function init() { 
     alert('aaa'); 
    } 
}]); 

그리고 Home.html는 텍스트의 조각이 포함되어 있습니다.

다음으로 이동하면 : localhost/#Home 다음 ng-view 태그에 내 Home.html을로드 할 것으로 예상됩니다. 그러나 그것은 일어나지 않습니다. 내 index.html 만로드되지만 각도 코드는 트리거 된 것으로 보이지 않습니다.

아직 뭔가가 누락 되었습니까?

답변

1

보십시오

angular.module('ngTest', ['ngRoute', 'ngResource', 'ngAnimate']). 
config(['$routeProvider', '$locationProvider', '$httpProvider', '$provide', function ($routeProvider, $locationProvider, $httpProvider, $provide) { 
    $httpProvider.defaults.useXDomain = true; 
    delete $httpProvider.defaults.headers.common['X-Requested-With']; 
    $httpProvider.defaults.useXDomain = true; 
    $locationProvider.html5Mode(true); 
    $routeProvider.when('/Home', { 
     templateUrl: '/app/views/home/Home.html', 
     controller: 'HomeCtrl' 
    }) 
     .otherwise({ 
     redirectTo: '/Login' 
    }); 
}]); 

You could do that for controlers : 

angular.module('ngTest.controllers', []);//Declare controllers 


angular.module('ngTest.controllers'). 
controller('HomeCtrl',['$scope', function ($scope) { 
    init(); 
    function init() { 
     alert('aaa'); 
    } 

}]);

그런데 html5Mode(true) 경로는 로컬 호스트/홈입니다.

+0

내 컨트롤러를 트리거하지만 'app'이 정의되지 않았다는 오류가 발생합니다. 왜냐하면'window.app'는 이전처럼 내가 정의하지 않았기 때문입니다. 그렇다면 컨트롤러 코드를 어떻게 작성해야합니까? - Angular가 심지어'var myApp = angular.module ('myApp', []);'과 같은 것을 수행한다는 것은 저를 괴롭힌다. 그래서 그것은 코드를 만드는 올바른/바람직한 방법 인 것 같습니다. – Vivendi

+0

나는 내 대답을 편집하고 제어 호출을 추가했습니다. 사실, 문제는 'var app'대신 window.app를 사용하는 것과 관련이 있습니다. –

관련 문제