Angularjs : $locationProvider.hashPrefix("!") ;

Posted

技术标签:

【中文标题】Angularjs : $locationProvider.hashPrefix("!") ;【英文标题】: 【发布时间】:2013-09-19 14:22:03 【问题描述】:

我想将 url 显示为 "www.test.com/!#" 因为我正在使用 $locationProvider.hashPrefix("!") ;但它将网址显示为“www.test.com/#!” .我想要 ”!”在哈希之前而不是在哈希之后。

谢谢

var app = angular.module('app', []);
app.config(function ($routeProvider, $locationProvider) 
    $locationProvider.html5Mode(false);
    $locationProvider.hashPrefix("!");
    $routeProvider.when('/', 
        templateUrl: "app.html",
        controller: "AppCtrl"
    

    )
        .when('/Program', 
        templateUrl: "detail1.html",
        controller: "Redirect"
    )
        .when('/Program/123456/channel/78458585',

    
        templateUrl: "details.html",
        controller: "Detail"
    );
);



app.controller("AppCtrl", function ($scope) 

);

app.controller("Detail", function ($scope, $location) 

);

app.controller("Redirect", function ($scope, $location) 
    $location.path("/Program/123456/channel/78458585")
);

【问题讨论】:

【参考方案1】:

如果您想在片段标识符开始之前在 URL 中添加 !,那么您需要将其放在 URL 中作为开头,而不是尝试使用 Angular。

http://www.example.com/#foohttp://www.example.com/#!foo 是同一页面的不同部分。

但是http://www.example.com/#foohttp://www.example.com/!#foo 完全是不同的页面。

【讨论】:

用 angularjs 来做这件事有点麻烦。$locationProvider.hashPrefix("!") 的名字应该把它附加在 hash 之前。为什么它出现在 hash 之后。

以上是关于Angularjs : $locationProvider.hashPrefix("!") ;的主要内容,如果未能解决你的问题,请参考以下文章

一篇入门AngularJS

AngularJS学习之旅—AngularJS 服务

初识AngularJS

AngularJs初识

[angularjs] angularjs系列笔记简介

[angularjs] angularjs系列笔记事件