2015-09-24 2 views
1

Я нахожусь на угловом 1.4.6 и новом маршрутизаторе версии 0.5.3 и хотел удалить '/ #' из url. Кажется, ничего не может найти об этом в Интернете.Угловой новый маршрутизатор удалить/# из URL

Edit: $locationProvider.html5mode(true); дает следующее сообщение об ошибке: Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: TypeError: $locationProvider.html5mode is not a function

+0

Проверить эту статью HTTPS : //scotch.io/quick-tips/pretty-urls-in-angularjs-removing-the-hashtag –

ответ

1

Вы можете удалить хэштегом из URL-адресов только в браузерах, поддерживающих HTML5 History API. Как вы можете видеть here, он не поддерживается в IE9, поэтому в этом случае он вернется к Hashtags.

Сказав это, чтобы сделать ваши URL-адреса хорошенькими в поддерживаемых браузерах, вы можете включить html5Mode, используя конфигурацию $locationProvider, как показано ниже.

angular.module('myApp', []) 
     .config(function($locationProvider){ 
      $locationProvider.html5Mode(true); 
     }); 

В дополнение к этому, необходимо определить базовый URL вашего приложения для углового-маршрутизатора для определения маршрутов. Если ваш URL является

http://localhost:8080/myApp/#showLogin
http://localhost:8080/myApp/#showHomePage

, то вам необходимо определить базовый URL, используя <base> тега, как показано ниже

<head> 
    <base href="/myApp"> 
</head> 

Надеется, что это помогает :)

+0

забыл добавить, что, что не работает! Я получаю эту ошибку: 'Uncaught Error: [$ injector: modulerr] Не удалось создать приложение модуля из-за: TypeError: $ locationProvider.html5mode не является функцией' –

+1

Это 'html5Mode' с капиталом' M' not 'html5mode' :) – Arkantos

+0

вы можете устранить необходимость базы путем передачи опции ' { включено: правда, requireBase: ложные } ' до $ locationProvider спасибо –