2015-11-10 2 views
2

Я использую маршрутизацию AngularJS, и я использовал много трюков, но знак «#» всегда попадает в URL-адрес.AngularJS routing, remove # from URL

См. Ниже Пример/Код, который я использовал, но он не удаляет # знак из URL.

angular.module('mod', []). 
    config(['$routeProvider', '**$locationProvider'**, 
      function($routeProvider, **$locationProvider**) { 

    $routeProvider. 
     when('/first', { 
      templateUrl: 'first.html', 
      controller: 'firstCtrl' 
    }); 

    $locationProvider.html5Mode(true); 

    }]); 

Есть ли у кого-нибудь решение для этого? Пожалуйста, поделитесь им.

ответ

1

Я столкнулся с той же проблемой и нашел решение в Документах.

$locationProvider.html5Mode({ 
    enabled: true, 
    requireBase: false 
}); 

и

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

При настройке $ расположения использовать html5Mode (history.pushState), то нужно указать базовый URL для приложения с тегом или настроить $ locationProvider не требует базового тега , передающего объект определения с requireBase: false to $ locationProvider.html5Mode():

Мы совершили неправильный вызов функции. Попробуйте это, и это сработает. Вы можете также check the docs.

+0

Спасибо, позвольте мне попробовать это :) –

2

есть либо вещей, и может сделать его работу

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

<head> 
    <meta charset="utf-8"> 

    <base href=""> 
</head> 

или вы можете настроить

$locationProvider.html5Mode({ 
    enabled: true, 
    requireBase: false 
});