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/#foo
和 http://www.example.com/#!foo
是同一页面的不同部分。
但是http://www.example.com/#foo
和http://www.example.com/!#foo
完全是不同的页面。
【讨论】:
用 angularjs 来做这件事有点麻烦。$locationProvider.hashPrefix("!") 的名字应该把它附加在 hash 之前。为什么它出现在 hash 之后。以上是关于Angularjs : $locationProvider.hashPrefix("!") ;的主要内容,如果未能解决你的问题,请参考以下文章