2016-04-11 18 views
0

Derzeit verwende ich Angular Js Routing auf diese Weise und es funktioniert gut.Benutzerdefinierte angularjs route url

config(["$routeProvider", function ($routeProvider, $mdThemingProvider) { 
     $routeProvider 
      .when('/', { 
       templateUrl: '/templates/home.html', 
       controller: 'smu72Controller' 
      }) 
     .when('/contact', { 
      templateUrl: '/templates/contact.html', 
      controller: 'smu72Controller' 
     }) 
      .when('/objects', { 
       templateUrl: '/templates/objects.html', 
       controller: 'smu72Controller' 
      }) 
      .when('/objects/:objectId', { 
       templateUrl: '/templates/object.html', 
       controller: 'smu72Controller' 
      }) 
      .when('/services', { 
       templateUrl: '/templates/services.html', 
       controller: 'smu72Controller' 
      }) 
     .otherwise({ 
      redirectTo: "/" 
     }); 
    } 
    ]); 

Aber mit diesem Code, den ich hässlich bekam suchen und nicht freundlich Urls wie host/index.html#sectionname SEO, wie soll ich ändern diese Route url als host/sectionname zu bekommen?

P.S. Ich bekomme Vorlagen zu Div mit ng-view auf Index.html Seite.

+0

Danke euch Jungs, beide Antworten sind richtig, also wähle ich nur die älteste aus. –

Antwort

1

durch das $locationProvider Modul und Einstellung html5Mode zu true (die Verwendung von HTML5 History API) wir loswerden der hässlichen #

config(function($routeProvider, $locationProvider) { 
    $routeProvider 
      .when('/', { 
       templateUrl: '/templates/home.html', 
       controller: 'smu72Controller' 
      }) 
    /* your all other route specifications */ 

    $locationProvider.html5Mode(true); 
} 
+0

Dont nur Dump-Code, versuchen Sie auch eine Beschreibung hinzufügen – dreamweiver

+0

@dreamweiver, Sie haben Recht, aber diese Antwort klar genug. –

+0

@dreamweiver danke, 'redigiert' – manish

1

standardmäßig Angular verwendet etwas Hash-Bang-Modus genannt, können Sie diese drehen kann aus und benutze den HTML5-Modus - mit diesem erhalten Sie nette URLs - aber es wird nicht in alten Browsern funktionieren. Um dies zu aktivieren, setzen Sie die Zeile unten in den Konfigurationsbereich Ihrer App - denken Sie daran, $locationProvider zu injizieren.

$locationProvider.html5Mode(true);

mehr hier https://docs.angularjs.org/guide/$location lesen.

Verwandte Themen