Question Point d'exclamation après le hachage (#!) Dans l'application angularjs


Je viens de remarquer que j'ai un point d'exclamation après le hachage (#!) dans tous mes itinéraires, je ne sais pas comment et pourquoi je les ai obtenus car aujourd'hui je ne les avais pas, y a-t-il une solution pour les éliminer? J'apprécierais si quelqu'un peut m'expliquer ce que c'est, et comment je l'ai eu. Donc, la seule solution que j'ai trouvée jusqu'à présent est de placer manuellement un point d'exclamation sur chaque href de mon application, mais cela m'énerve et je n'ai aucune idée de ce qu'il faut faire. J'ai généré mon application avec yeoman generator et mon app.js ressemble à ceci

angular
  .module('appNameApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl',
        controllerAs: 'main'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl',
        controllerAs: 'about'
      })
      .when('/jaspo', {
        templateUrl: 'views/about.html',
        controller: 'jaspoCtrl',
        controllerAs: 'vm'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

30
2017-12-19 00:24


origine


Réponses:


Modifier ces 2 lignes:

  .config(function ($routeProvider) {
$routeProvider

être :

    .config(function ($routeProvider,$locationProvider) {
    $locationProvider.hashPrefix('');
    $routeProvider

Le crédit devrait aller à: https://stackoverflow.com/a/41223197/1564146


70
2017-12-19 14:31



Vous avez probablement mis à jour la version angulaire de 1.5 à 1.6, car sur 1.6, l'équipe angulaire a décidé de remplacer le préfixe de hachage par défaut de $ location par "!". Comme @Skrew suggéré, vous pouvez changer cela en '' avec $locationProvider.hashPrefix('');

Ici vous pouvez lire à ce sujet.


22
2018-01-09 15:56



Votre fonction ne contient pas de fournisseur locationProvider et doit spécifier html5Mode pour l'emplacementProvider. Voir https://docs.angularjs.org/api/ng/provider/$locationProvider. Au lieu de:

.config(function ($routeProvider) { $routeProvider .when('/', {

essayer:

.config(function ($locationProvider, $routeProvider) { $locationProvider.html5Mode({ enabled:true }); $routeProvider .when('/',{

Par défaut, vous devez également spécifier une balise de base <base href="/"> dans votre fichier index.html.


2
2018-01-17 02:02