2014-05-20 3 views
0

내 스크립트는 : 내가 알아 내려고 많은 시간을 낭비했습니다ngRoute 작동하지

(function() { 
    angular.module('myApp', ['ngRoute']) 
      .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
       $routeProvider. 
       when('/', { 
        template: '<h1>Home</h1>', 
        controller: function() { 
         console.log('Home'); 
        } 
       }). 
       when('/books', { 
        template: '<h1>Books</h1>', 
        controller: function() { 
         console.log('Books'); 
        } 
       }); 
       $locationProvider.html5Mode(true); 
       console.log('routes configured'); 
      }]); 
})(); 

index.html을

<!DOCTYPE html> 
<html ng-app="myApp"> 
<head> 
    <title>My Application</title> 
</head> 
<body> 
    <div ng-view></div> 

    <script src="/assets/vendor/angular/angular-1.2.16.min.js"></script> 
    <script src="/assets/vendor/angular/extras/angular-route.js"></script> 
    <script src="/assets/myapp/myApp.js"></script> 
</body> 
</html> 

myApp.js 운이 없다면 문제가 될 수 있습니다. 나는 바보 같은 것을 놓치고 있습니까? 도움에 미리 감사드립니다.

+0

콘솔에 오류가 없는지 확인하고 모든 JS 파일이로드되는지 확인하십시오. 또는 바이올린을 만듭니다. –

+0

그것이 나를 괴롭히는 원인이며, 모든 파일이로드되고 콘솔에 오류가 전혀 없습니다. – snajahi

+0

완벽하게 보입니다. 그것을 위해 바이올린을 만듭니다. –

답변

0

그냥 질문이지만 컨트롤러 -> 컨트롤러에 함수를 추가 할 수 있습니다. function()? 왜냐하면 보통 나는 이렇게 할거야. 컨트롤러 : 'mainController'그리고 mainController에 함수를 넣으십시오.

1

서버의 루트에 응용 프로그램을 호스팅하고 있습니까? 그렇지 않다면 head 태그에서 아래의 태그를 사용해야합니다.

<base href="PATH_HERE" /> 

또한, 당신은 $ locationProvider.html5Mode (참) 라인과 앱이 첫번째 해시 라우팅 모드에서 작업 취득을 주석 처리 할 수 ​​있습니까?

+0

더 말하십시오. 나는 그의 웹 서버가 nginx에서 역방향 프록시가되어있는 웹 애플리케이션에서이 문제를 겪고있다. nginx는 앱 루트가 백엔드 웹 서버의 비즈니스라는 것을 전혀 모릅니다. 이게 효과가 있니? –

+0

기본 태그는 웹 서버의 루트가 아닌 다른 곳에서 응용 프로그램을 호스팅하는 경우에만 사용됩니다. 예를 들어 (html5Mode가 꺼져 있다고 가정합니다.) 서버가 http://myserver.com이고 각 응용 프로그램이 루트에 호스팅 된 경우 각 경로는 http://myserver.com/에 정의됩니다. #/someroute. 그러나 http://myserver.com/subdirectory/에서 각도 응용 프로그램을 호스팅하는 경우 기본 태그의 href를/subdirectory /로 설정하여 경로가 http://myserver.com으로 올바르게 확인되도록해야합니다./하위 디렉토리/#/someroute – romiem

관련 문제