2016-12-26 4 views
2

Учатся некоторые Угловым - и я застрял на маршрутизациюУгловой Route - Extra # в 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

Этот вопрос может быть полезным для вас, спасибо. http://stackoverflow.com/questions/14771091/removing-the-fragment-identifier-from-angularjs-urls-symbol –

+0

Red. Он должен работать – Ved

+0

@ArpitMeena Я попробовал это до публикации вопроса, и это не решило проблему. – DogCoffee

ответ

3

Поскольку AngularJS 1,6 есть ломка изменение маршрута:

Хэш-префикс $ местоположения хэш-BANG URL-адресов изменился с пустой строкой «» на ура «».

(см https://github.com/angular/angular.js/blob/master/CHANGELOG.md)

Решение:

либо начать использовать #! Вместо # или установить $ locationProvider принять только с помощью #, как это:

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

Спасибо - я мог бы придерживаться ui-router? мысли? – DogCoffee

+0

DogCoffee: мы использовали ui-router в приложении, мы обнаружили проблему, так что это может не помочь;) –

+0

Приветствия - пока все хорошо с ui-router. Также $ locationProvider.hashPrefix (''); устраняет проблему с помощью ngRoute. – DogCoffee

 Смежные вопросы

  • Нет связанных вопросов^_^