2017-01-29 4 views
1

Все в моем приложении работало нормально, пока я не попытался добавить ngAnimate, ngMaterial и ng-image-gallery. Я не знаю, является ли добавление этих модулей источником проблемы, но я ничего не изменил до возникновения проблемы.Угловой ngRoute внезапно преобразует URL в кодированные символы #!/#% 2F

С тех пор (даже после того, как я удалил зависимости от app.js и index.html) все URL-адреса преобразуются в закодированных символов ...

Перед тем, как он выглядел:

http://.../app/index.html#/workshops 

не это преобразованный в:

http://.../app/index.html#!/#%2Fworkshops 

и, конечно же, ничего не найдено. Навигация не работает, ничего не происходит.

Почему, черт возьми, теперь кодируется URL? Даже просто работает index.html н веб-сервер дает мне следующий URL:

http://.../app/index.html#!/ 

ли кто-нибудь есть такая же проблема? Почему так? И что еще более важно: как я могу это решить ?! Большое спасибо заранее.

Мой маршрут конфигурации:

'use strict'; 

    angular.module('myApp').config(['$locationProvider', '$routeProvider', 
    function($locationProvider, $routeProvider) { 

    $routeProvider 
    .when('/', { 
     templateUrl : 'modules/start/views/start.html', 
     controller: 'StartController' 
    }) 

    .when('/galerie', { 
     templateUrl : 'modules/galerie/views/galerie.html', 
     controller: 'GalerieController' 
    }) 
    .when('/kontakt', { 
     templateUrl : 'modules/kontakt/views/kontakt.html', 
     controller: 'KontaktController' 
    }) 
    .when('/workshops', { 
     templateUrl : 'modules/workshops/views/workshops.html', 
     controller: 'WorkshopsController' 
    }) 
    ; 
    }]); 

А вот как я переключаю маршруты навигации:

   <div class="navbar navbar-top hidden-xs"> 
        <ul class="nav navbar-nav"> 
         <li> 
          <a href='#/'>Start</a> 
         </li>      
         <li> 
          <a href='#/workshops'>Workshops</a> 
         </li> 
         <li> 
          <a href='#/galerie'>Galerie</a> 
         </li> 
         <li> 
          <a href='#/kontakt'>Kontakt & Buchung</a> 
         </li> 
        </ul> 
       </div> 

Это как скрипты включены:

 <script src="bower_components/angular/angular.js"></script> 
    <script src="bower_components/angular-route/angular-route.js"></script> 
    <script src="https://use.fontawesome.com/936815fb51.js"></script> 
    <script src="app.js"></script>  
    <script src="modules/config/routes.js"></script> 
    <script src="modules/start/start.js"></script> 
    <script src="modules/start/controllers/StartController.js"></script> 
    ... 

Добавление Консоль ничего не говорит. Нет проблем, ошибок нет.

ответ

2

Gosh, я просто нашел ответ ... косвенно, это связано с добавлением зависимостей, потому что я изменил используемую угловую версию с 1.58 до 1.61 - я просто прочитал, что префикс хэша изменен на «!».

Связь с автоответчиком вопрос здесь: Angular Route - Extra # in URL

на следующие строки в маршрутной конфигурации делает маршрутизатор работать, как и раньше:

$locationProvider.hashPrefix(''); 

Благодаря Арьян Einbu для ответа на этот вопрос в ссылка. Это спасло мой день.

+0

Потерянный час за этой глупой '!'. Спасибо чувак! – ayushgp