我使用带有角度的$ stateProvider:
var stateConfig = function ($stateProvider, $urlRouterProvider) {
// Redirect if no route
$urlRouterProvider.otherwise("");
$stateProvider.state("home.myState", {
url: "",
templateUrl: "/mytemplate.html",
controller: "MyController"
});
};
...这对于这样的.NET MVC网址没有问题(没有定义角度路由):
http://hostname/MvcController/id
问题是,有时URL将采用以下形式:
http://hostname/MvcController/id#/
...我可以改变我的状态定义:
$stateProvider.state("home.myState", {
url: "/",
...
,与新网址匹配,但不再与原始网址匹配(不包含结尾标记#')。我应该如何定义状态或配置我的路由,以便它匹配一个可以有空白'路线(即尾随'#/'),或根本没有定义路线(没有尾随'#/')
答案 0 :(得分:1)
据我所知,您需要在app.config中打开HTML5模式:
app.config(["$locationProvider", function($locationProvider) {
$locationProvider.html5Mode(true);
}]);
此外,您还必须在代码中设置基本网址:
< base href="/" >
答案 1 :(得分:1)
我需要更改为this,当没有提供路由时,将路由设置为'/'(然后状态在后缀为'/'的路由上匹配)
$urlRouterProvider.otherwise("/");
$stateProvider.state("home.myState", {
url: "/",
...