2016-11-08 17 views
11

Na przykład:Używam kątowej, a mój adres url zawsze ma "!" (Wykrzyknik)

http://localhost/#!/login.html 

nie muszę "!". Jak mogę to usunąć?

eg:http://localhost/#/login.html 

To jest mój kod Router:

// Redirect any unmatched url 
$urlRouterProvider.otherwise("/login.html"); 
$stateProvider.state('login', { 
    url: "/login.html", 
    templateUrl: "views/login.html", 
    data: {pageTitle: "login", isLeft: false}, 
    controller: "LoginCtrl", 
    resolve: { 
     deps: ['$ocLazyLoad', function ($ocLazyLoad) { 
      return $ocLazyLoad.load({ 
       name: 'myApp', 
       files: [ 
        'controllers/LoginCtrl.js' 
       ] 
      }); 
     }] 
    } 
}); 

myślę kątowa-ui-Router może mieć problem, ale nie mogę znaleźć rozwiązania.

Dzięki!

+0

można pokazać swój kod routingu? – JanR

+1

[Propozycja Google do indeksowania AJAX] (https://developers.google.com/webmasters/ajax-crawling/docs/learn-more) (przestarzałe od HTML5). Domyślne ustawienia kątowe: [tryb hashBang] (https://docs.angularjs.org/guide/$location#hashbang-mode-default-mode-). '$ locationProvider.html5Mode (true)', aby ustawić domyślny tryb HTML5 (nadal będziesz mieć hashbang w starszych przeglądarkach i to dobrze). – Amadan

+1

Zobacz także [this] (http://stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for) i [this] (http: // stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for). – Amadan

Odpowiedz

7

tryb Hashbang to trik, który angularjs wykorzystuje dostarczenie głęboko łącząc możliwości do Twoje aplikacje Angular . W trybie hashbang (awaryjnym trybie html5) ścieżki URL przyjmują znak z góry #. Nie przepisują tagów i nie wymagają obsługi po stronie serwera. Tryb Hashbang jest domyślnym trybem używanym przez AngularJS, jeśli nie podano inaczej. hashbang URL wygląda następująco:

http://yoursite.com/#!/inbox/all

być jawne i skonfigurować tryb hashbang, musi być skonfigurowany w funkcji config na module app

Możemy również skonfigurować hashPrefix, który w trybie hashbang to ! prefiks. Ten prefiks jest częścią mechanizmu rezerwowego, którego Angular używa w starszych przeglądarkach. Możemy również skonfigurować tę postać.

Aby skonfigurować hashPrefix:

angular.module('myApp', ['ngRoute']) 
.config(['$locationProvider', function($locationProvider) { 
$locationProvider.html5Mode(false); 
$locationProvider.hashPrefix('!'); 
}]); 
+0

Dziękuję bardzo. Mam to! – AlwayS

+0

@ Jigar7521 Czy lepiej mieć "!" czy lepiej nie mieć go w ogóle? –

+0

w rzeczywistości "!" jest rodzajem znaku, który pomaga zidentyfikować trasy i kontroler, który jest nazywany, więc lepiej go mieć. – Jigar7521

0
$locationProvider.hasPrefix = '!'; 

myślę, że są skonfigurowane $ locationProvider jak this.Remove tego uniknąć Tryb Hashbang się !

+0

Dziękuję bardzo. – AlwayS

+0

$ locationProvider.hashPrefix ('!') – ricka

0

app.config(function ($routeProvider, $locationProvider) { 
 
      $locationProvider.hashPrefix('page'); 
 
$routeProvider.when("/home", { 
 
       templateUrl: "templates/home.html", 
 
       controller: "homecontroller" 
 

 
      });