2016-10-19 2 views
0

Ich bekam ein Problem im Routing, das ich # in der URL nicht entfernen kann. Ich habe alle Lösungen versucht, wie $locationProvider mit von $locationProvider.html5Mode(true).href="/" Einstellung ist nicht für mich arbeiten als das Verzeichnis falsch zu nehmen und alle Dateien fehlen, so habe ich href="./"angular js entfernt # in Routing

verwendet aber ein Fehler kommen immer wieder wie nicht Eigentum ‚html5Mode‘ Kann lesen von undefined freundlicherweise stellen Sie mir eine Lösung zur Verfügung. Hier ist mein Snippet

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>

Aber ein Fehler hält zeigt wie

Fehler: $ Injektor: modulerr Modulfehler Nicht bestandene Modul angularMFRP instanziiert durch: Typeerror: nicht Eigentum lesen 'html5Mode' von undefined

Auch ich habe diese Aussage auch allein verwendet $locationProvider.html5Mode(true) wie in allen Standorten vorgeschlagen, aber es funktioniert nicht den Fehler coming.Kindly halten mir empfehlen einige Lösung

+1

Sie passieren vergessen, '$ rootScope' als Element eines Arrays in der Konfigurationsfunktion. 'angleMFRP.config (['$ routeProvider', '$ rootScope', '$ locationProvider', Funktion ($ routeProvider, $ rootScope, $ locationProvider) {' –

+0

http://stackoverflow.com/questions/14771091/removing-the -fragment-identifier-from-angularjs-URLs-Symbol – mymotherland

Antwort

1

die Sie interessieren, indem Sie diese Zeile in der Nähe zu ersetzen, in Ihrem Code:

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 
    }); 
    } 
]);