2016-12-26 3 views
2

어떤 각도 학습에 추가 # - 난 여기 내 각도 설정각도 경로 - URL

var meanApp = angular.module('carz', ['ngRoute']); 


meanApp.config(function($routeProvider) { 
    $routeProvider 
     .when('/', { 
      templateUrl: 'home.html', 
      controller: 'mainCtrl' 
     }) 
     .when('/red', { 
      templateUrl: 'red.html', 
      controller: 'redCtrl' 
     }); 
}); 

는 여기

라우팅에 붙어있어 내 링크가 있습니다

<a href="#">Home</a> 
<a href="#red">Red</a> 

내 노드 앱을로드합니다.

http://localhost:8080/#!/ 

그리고 내 각 컨트롤러가 ng-view 태그 내에서 예상대로 작동합니다.

위의 링크를 사용하여 한 컨트롤러에서 다른 컨트롤러로 전환 할 수 없습니다. 나는 빨간색 태그를 선택하면

내 URL 내가 수동으로

http://localhost:8080/#!/red 

내 컨트롤러 변화를 변경하는 경우

http://localhost:8080/#!/#red 

참고가되는 추가 #을 추가하고 왜 내가 얻고 그래서 작동 여분 #

도움 주셔서 감사합니다.

+1

이 질문은 당신을 위해 도움이 될 수 있습니다, 감사를 대신 # 의하거나 다음과 같이 #을 사용하여 받아 들일 $ locationProvider을 설정합니다. http://stackoverflow.com/questions/14771091/removing-the-fragment-identifier-from-angularjs-urls-symbol –

+0

Red. 그것은 작동해야합니다 – Ved

+0

@ArpitMeena 나는 질문을 게시하기 전에 그것을 시도하고 문제를 해결하지 못했습니다. – DogCoffee

답변

3

AngularJS 1.6 이후 라우팅에 큰 변화가 있습니다.

$ location hash-bang URL의 해시 프리픽스가 빈 문자열 ""에서 "!"로 변경되었습니다.

(https://github.com/angular/angular.js/blob/master/CHANGELOG.md 참조)

솔루션 :

중 하나 #을 사용하기 시작!

appModule.config(['$locationProvider', function($locationProvider) { 
    $locationProvider.hashPrefix(''); 
}]); 
+0

고마워요. 그럼, 내가 ui-router를 고집 할까? 생각? – DogCoffee

+0

DogCoffee : 우리는 문제가 발견 된 응용 프로그램에서 ui-router를 사용하고 있었기 때문에 도움이되지 않을 수 있습니다.) –

+0

건배 - 지금까지는 ui-router와 잘 어울립니다. 또한 $ locationProvider.hashPrefix (''); ngRoute로 문제를 해결합니다. – DogCoffee