本文介绍了我正在使用 angular,我的 url 总是有一个“!"(感叹号)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如:

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

我不需要!".我将如何删除它?

I don't need "!". How would I remove it?

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

这是我的路由器代码:

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

我认为 Angular-ui-router 可能有问题,但我找不到解决方案.

I think Angular-ui-router might have a problem, but I can't find the solution.

谢谢!

推荐答案

Hashbang Mode

Hashbang 模式是 AngularJS 用来为你的 Angular 提供深层链接功能的一个技巧应用.在 hashbang 模式(html5 模式的后备模式)中,URL 路径采用前置 # 字符.它们不重写标签,也不需要任何服务器端支持.哈希邦mode 是 AngularJS 使用的默认模式,除非另有说明.hashbang URL 如下所示:

Hashbang mode is a trick that AngularJS uses to provide deep-linking capabilities to your Angularapps. In hashbang mode (the fallback for html5 mode), URL paths take a prepended # character.They do not rewrite tags and do not require any server-side support. Hashbangmode is the default mode that AngularJS uses if it’s not told otherwise.A hashbang URL looks like:

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

要显式配置hashbang模式,需要在配置函数中配置应用模块

To be explicit and configure hashbang mode, it needs to be configured in the config function on anapp module

我们还可以配置 hashPrefix,在 hashbang 模式下,它是!字首.这个前缀是 Angular 的回退机制的一部分用于旧版浏览器.我们也可以配置这个字符.

配置 hashPrefix:

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

这篇关于我正在使用 angular,我的 url 总是有一个“!"(感叹号)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 07:40