什么#!在ui.router中意味着什么?

时间:2016-12-25 00:40:56

标签: angularjs angular-ui-router

我正在使用Angular ui.router来浏览我的应用程序。 通常,网址应如下所示:

http://localhost:8001/#/start

但就我而言,它看起来像这样:

http://localhost:8001/#!/start

这是什么意思?

我也认识到如果我从这个网站调用的URL与我的起始页不同,我总是会被重定向,因为URL似乎无效。

mainApp.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
'use strict';
$urlRouterProvider.otherwise('start');
$stateProvider
    .state('start', {
        url: '/start',
        templateUrl: 'views/start.html'
    })
    .state('registration-activate', {
        url: '/registration/activate/{activationKey}',
        templateUrl: 'views/registration-activation.html'
    })
    ;
    }]);

每当我尝试调用localhost:8001 /#/ registration / activate / xyz时,我都会被重定向到起始页面。

2 个答案:

答案 0 :(得分:2)

好的伙计们,谢谢你的解释。 我解决了我的问题,即我无法通过将链接添加到我的配置来调用链接中的URL:

$locationProvider.hashPrefix('');

答案 1 :(得分:0)

如果浏览器是HTML5浏览器,angularJS会将其重定向到#!

否则只会#

$location上阅读此documentation here,详细了解原因。

  
      
  • 在旧版浏览器中打开常规网址 - >重定向到hashbang网址
  •   
  • 在现代浏览器中打开hashbang网址 - >重写为常规网址
  •