2017-06-06 77 views
0

我使用$ stateProvider具有角是這樣的:

var stateConfig = function ($stateProvider, $urlRouterProvider) { 

    // Redirect if no route 
    $urlRouterProvider.otherwise(""); 

    $stateProvider.state("home.myState", { 
     url: "", 
     templateUrl: "/mytemplate.html", 
     controller: "MyController" 
    }); 
}; 

...這對於.NET MVC URL喜歡這工作正常(與沒有定義角路線):

http://hostname/MvcController/id 

的問題是,有時網址會以這種形式:

http://hostname/MvcController/id#/ 

...我可以CH安格我的狀態定義是這樣的:

$stateProvider.state("home.myState", { 
     url: "/", 
     ... 

,它匹配新的URL,但不再是原來的URL(沒有尾隨「#/」)相匹配。我應該如何定義狀態或配置我的路由,以便它匹配一個可以有'空'路徑(即尾隨'#/')或根本沒有路由定義的URL(沒有尾部的#/ 「)

回答

1

據我知道你需要在你的app.config接通HTML5模式:

app.config(["$locationProvider", function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}]); 

你也必須設置在標籤的基礎URL:

< base href="/" > 
1

我需要改變這個,當沒有路由提供時,它將路由設置爲'/'(並且狀態然後與路由後綴匹配e'/')

$urlRouterProvider.otherwise("/"); 

$stateProvider.state("home.myState", { 
    url: "/", 
    ...