web-dev-qa-db-fra.com

J'utilise angular, et mon URL a toujours un "!" (point d'exclamation)

Par exemple:

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

Je n'ai pas besoin de "!". Comment pourrais-je l'enlever?

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

Ceci est mon code de routeur:

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

Je pense que Angular-ui-router pourrait avoir un problème, mais je ne trouve pas la solution.

Merci! 

12
AlwayS

Mode Hashbang

Le mode Hashbang est une astuce qu'AngularJS utilise pour fournir des fonctionnalités de liaison profondes à vos applications Angular . En mode hashbang (le repli pour le mode html5), les chemins d’URL prennent un caractère # précédé .. .. Ils ne réécrivent pas les balises et ne nécessitent aucun support côté serveur. Hashbang Mode est le mode par défaut utilisé par AngularJS s’il n’est pas dit le contraire. Un URL de hashbang ressemble à ceci:

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

Pour être explicite et configurer le mode hashbang, il doit être configuré dans la fonction de configuration sur un moduleapp

Nous pouvons également configurer le hashPrefix, qui, en mode hashbang, est le ! préfixe. Ce préfixe fait partie du mécanisme de repli qu'Angular utilise pour les anciens navigateurs. Nous pouvons également configurer ce personnage.

Pour configurer le hashPrefix:

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

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

            });

0
javidg
$locationProvider.hasPrefix = '!';

Je pense que vous êtes configuré $ locationProvider comme ceci. Supprimez ceci pour éviter le !

0
Nikhil Mohanan