2016-10-19 2 views
0

У меня возникла проблема в маршрутизации, которую я не могу удалить # в URL-адресе. Я перепробовал все решения, как с помощью $locationProvider путем установки $locationProvider.html5Mode(true).href="/" не работает для меня, как его принимать каталог неправильно, и все файлы отсутствуют, поэтому я использовал href="./"угловой js удаление # в маршрутизации

Но ошибка продолжает прибывать, как не удается прочитать свойство «html5Mode» of undefined любезно предоставит мне решение. Вот мой сниппет

var angularMFRP = angular.module('angularMFRP',['ngRoute','angularUtils.directives.dirPagination']); 
 

 
angularMFRP.config(['$routeProvider','$locationProvider', function($routeProvider, $rootScope,$locationProvider) { 
 
    $routeProvider 
 
\t \t .when('/', { 
 

 
      templateUrl: 'app/partials/home.html', 
 
      controller: 'home' 
 
     }) 
 
     .when('/restaurants', { 
 
\t \t \t resolve: { 
 

 
       "check": function($location, $rootScope, $window) { 
 
        if (!$rootScope.navigates) { 
 
         $window.alert("please select City"); 
 
         $location.path('/'); 
 

 
        } 
 

 
       } 
 
      }, 
 
      templateUrl: 'app/partials/restaurants.html', 
 
      controller: 'restaurant' 
 
     }) 
 
\t \t .otherwise({ 
 
     redirectTo: '/' 
 
    }); 
 
\t if(window.history && window.history.pushState){ 
 
      
 
     $locationProvider.html5Mode({ 
 
       enabled: true, 
 
       requireBase: false 
 
      }); 
 
     } 
 
\t \t 
 
\t \t }]);
<!DOCTYPE html> 
 
<html lang="en" ng-app="angularMFRP"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <title ng-bind="title"></title> 
 
\t <base href="./"> 
 
    <link rel="stylesheet" type="text/css" href="assets/css/reset.css"> 
 
    <link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css"> 
 
    <link rel="stylesheet" type="text/css" href="assets/css/style.css"> 
 

 
    <!-- include library script files here --> 
 

 
      <script src="assets/library/angular.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.0/angular-route.min.js"></script> 
 
    <script src="assets/library/bootstrap.js"></script> 
 
    <script src="assets/library/dirPagination.js"></script> 
 

 
</head>

Но ошибки продолжает демонстрировать как

Ошибка: $ Инжектор: modulerr Module Error Не удалось создать экземпляр модуля angularMFRP из-за: TypeError: Не удается прочитать свойство 'html5Mode' of undefined

Также я тоже использовал это заявление $locationProvider.html5Mode(true) как это было предложено во всех местах, но ее не работает ошибка держать coming.Kindly предложить мне какое-то решение

+1

вы забыли передать '$ rootScope' как элемент массива в конфигурации. 'angularMFRP.config (['$ routeProvider', '$ rootScope', '$ locationProvider', функция ($ routeProvider, $ rootScope, $ locationProvider) {' –

+0

http://stackoverflow.com/questions/14771091/removing-the -fragment-идентификатор-из-angularjs-URLs-символ – mymotherland

ответ

1

Попробуйте это, заменив эту линию рядом, в вашем коде:

angularMFRP.config(['$routeProvider','$rootScope','$locationProvider', function($routeProvider, $rootScope,$locationProvider) { 
0
var angularMFRP = angular.module('angularMFRP', ['ngRoute', 'angularUtils.directives.dirPagination']); 

angularMFRP.config(['$routeProvider', '$locationProvider', 
    function($routeProvider, $locationProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'app/partials/home.html', 
     controller: 'home' 
     }) 
     .when('/restaurants', { 
     resolve: { 
      "check": function($location, $rootScope, $window) { 
      if (!$rootScope.navigates) { 
       $window.alert("please select City"); 
       $location.path('/'); 

      } 

      } 
     }, 
     templateUrl: 'app/partials/restaurants.html', 
     controller: 'restaurant' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
    } 
]); 
Смежные вопросы