Quiero eliminar los signos de exclamación del enrutamiento del estado de la URL como si mi URL ahora fuera http: // localhost: 3000 / #! / auth / register

Solo quiero eliminar este "!" marcas de la URL después de "#"

Es posible de hacer? con mean.io

Aquí está mi app.js / system.js

'use strict';

//Setting up route



  angular.module('mean').config(['$stateProvider', '$urlRouterProvider',
  function($stateProvider, $urlRouterProvider) {
    // For unmatched routes:
    //$urlRouterProvider.otherwise('/');


    var checkLoggedin = function($q, $timeout, $http, $location) {
      // Initialize a new promise
      var deferred = $q.defer();

      // Make an AJAX call to check if the user is logged in
      $http.get('/loggedin').success(function(user) {
        // Authenticated

        if (user !== '0') $timeout(deferred.resolve);

        // Not Authenticated
        else {
          $timeout(deferred.reject);
          $location.url('/auth/login');
        }
      });

      return deferred.promise;
    };


    //  console.log($stateProvider);
    // states for my app
    $stateProvider
      .state('tasks', {
        url: '/kanban/:projectId/:projectSlug',
        templateUrl: 'system/views/index.html',
          controller: 'IndexController',
          resolve: {
          loggedin: checkLoggedin,
          onEnter: function($stateParams,$state, $uibModal) {

              if ( $stateParams.projectId != "" ) {

                  updateTopMenu('Kanban','task','#!/kanban/'+$stateParams.projectId+'/'+$stateParams.projectSlug);
                  updateTopMenu('Schedule','schedule','#!/schedule');
              }
          }
        }

        }).state('home',{

            url:'/',
            templateUrl: 'projects/views/index.html',
            controller: 'ProjectController',
            resolve:{
                        loggedin: checkLoggedin
            }
        }).state('taskEdit',{

            url:'/kanban/:projectId/:projectSlug/:taskSlug',
            templateUrl: 'system/views/index.html',
            controller: 'IndexController',
            resolve:{
                        loggedin: checkLoggedin
            }

        }).state('taskAdd',{

          url: "/task/taskAdd",
          onEnter: function($stateParams, $state, $uibModal) {
              $uibModal.open({
                  templateUrl: "system/views/include/model.html",
                  resolve: {},
                  controller: function($scope, $state, itemService) {
                                /*
                                $scope.state = $state.current;
                                $scope.params = $stateParams;
                                $scope.item = itemService.get($stateParams.id);
                                */
                                $scope.ok = function () {
                                    $scope.$close('clicked ok');
                                };

                                $scope.dismiss = function () {
                                    $scope.$dismiss('clicked cancel');
                                };
                            }
                    }).result.then(function (result) {
                        // $scope.$close
                        alert('result ->' + result);
                    }, function (result) {
                        // $scope.$dismiss
                        return $state.transitionTo("home");
                        alert('dismiss ->' + result);
                    }).finally(function () {
                        // handle finally
                        return $state.transitionTo("tasks");
                    });
                }
          });
  }
]).config(['$locationProvider',
  function($locationProvider) {
    $locationProvider.hashPrefix('!');
  }
]);
0
ER.SHASHI TIWARI 9 dic. 2016 a las 08:57
Angular 1 o 2?
 – 
harishr
9 dic. 2016 a las 09:06
Angularjs 1. con node y expressjs
 – 
ER.SHASHI TIWARI
9 dic. 2016 a las 09:34
1
@ ER.SHASHITIWARI ¿puedes publicar tu código de enrutamiento (probablemente en App.js)?
 – 
Naghaveer Gowda
9 dic. 2016 a las 10:13
He agregado mi app.js / system.js
 – 
ER.SHASHI TIWARI
9 dic. 2016 a las 11:23
¿Debo marcar su pregunta como duplicada? stackoverflow.com/q/41047355/5156280
 – 
TGrif
9 dic. 2016 a las 23:02

2 respuestas

Lo has configurado aquí

function($locationProvider) {
   $locationProvider.hashPrefix('!');
}

Elimine esta línea para eliminar ! de la URL

O habilite html5mode usando el siguiente código para eliminar # de la URL

$locationProvider.html5Mode(true);

Pero lea más sobre cómo se manejan las rutas de URL en angular, y enrutamiento del lado del servidor frente al enrutamiento del lado del cliente, etc., antes de habilitar html5mode

2
harishr 9 dic. 2016 a las 11:50

Cambie $locationProvider.hashPrefix('!'); a $locationProvider.hashPrefix('');

System.js

.config(['$locationProvider',
  function($locationProvider) {
    $locationProvider.hashPrefix('');
  }
]);
1
Naghaveer Gowda 9 dic. 2016 a las 12:28