2015-01-31 1 views
1

나를 괴롭혀, Angular를 처음 사용합니다.각도 - 탐색을 위해 해시 링크 사용을 중단하는 방법?

나는 프로젝트를 비계하는 데 yeoman 각진 발전기를 사용했습니다. 내 네비게이션이있어 :

<ul class="nav nav-pills pull-right"> 
     <li class="active"><a ng-href="/">Home</a></li> 
     <li><a ng-href="#/about">About</a></li> 
     <li><a ng-href="#">Contact</a></li> 
    </ul> 

나는이 사이트가 살아 갈 때, 내가 링크가 http://example.com/#/about처럼 보이고 싶지 않기 때문에, 거기에 해시를 가진 좋아하지 않는다. 하지만 위의 내용을 다음과 같이 변경하면 :

<a ng-href="/about">About</a></li> 

정보 페이지를 클릭하면 페이지가 깨집니다. 여기 app.js에있어 무엇 : 당신은 HTML5 모드를 사용하는 $locationProvider를 구성 할 필요가

angular 
    .module('wowApp', [ 
    'ngAnimate', 
    'ngCookies', 
    'ngResource', 
    'ngRoute', 
    'ngSanitize', 
    'ngTouch' 
    ]) 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl' 
     }) 
     .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'AboutCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 

답변

1

.

angular 
    .module('wowApp', [ 
     'ngAnimate', 
     'ngCookies', 
     'ngResource', 
     'ngRoute', 
     'ngSanitize', 
     'ngTouch' 
    ]) 
    .config([ 
     '$locationProvider', 
     '$routeProvider', 
     function ($locationProvider, $routeProvider) { 
      // Set HTML 5 mode to true to disable # 
      // in push states 
      $locationProvider.html5Mode(true); 

      // Setting HTML5 mode to true also requires 
      // you to set a base URL for the application 
      // or disable `requireBase`. If you don't need base 
      $locationProvider.html5Mode({ 
       enabled : true, 
       requireBase : false 
      }); 


      $routeProvider.when(/* route logic as normal */);  
     } 
    ]); 

Reference for $locationProvider

지금 당신은 #의 당신의 앵커 HREF 값에서 제거 할 수 있습니다.

+0

작동하지 않습니다. '$ locationProvider.html5mode'는 함수가 아니라는 오류가 발생합니다. 또한''$ routeProvider ''뒤에 쉼표가 누락 되었습니까? – CaptSaltyJack

+0

예, 저는 고쳤습니다. 또한 고정되어있는'$ locationProvider.html5Mode (true)'입니다. –

+0

사이트를 탐색 할 때 해시가 사라졌습니다. 하지만 'http : // example.com/about'과 같은 URL을 가져 와서 새 브라우저에 붙여 넣으면 파일이 존재하지 않기 때문에 분명히 찾을 수 없습니다. 이것은 내 문제입니다. 사람들이 "진짜"가 아니라면 내 사이트의 특정 페이지에 어떻게 연결할 수 있습니까? – CaptSaltyJack

관련 문제