我正在使用 $stateProvider 和这样的 Angular :
var stateConfig = function ($stateProvider, $urlRouterProvider) {
// Redirect if no route
$urlRouterProvider.otherwise("");
$stateProvider.state("home.myState", {
url: "",
templateUrl: "/mytemplate.html",
controller: "MyController"
});
};
...这对于像这样的 .NET MVC url 来说效果很好(没有定义 Angular 路由):
http://hostname/MvcController/id
问题是有时 URL 会采用以下形式:
http://hostname/MvcController/id#/
...我可以像这样更改我的状态定义:
$stateProvider.state("home.myState", {
url: "/",
...
,它与新 URL 匹配,但不再与原始 URL 匹配(不带结尾的“#/”)。我应该如何定义状态,或配置我的路由,以便它匹配可以有“空白”路由(即带有尾随“#/”)或根本没有定义路由(没有尾随“#/”)的 URL ')
最佳答案
据我所知,您需要在 app.config 中打开 HTML5 模式:
app.config(["$locationProvider", function($locationProvider) {
$locationProvider.html5Mode(true);
}]);
此外,您还必须在标记中设置基本网址:
< base href="/" >
关于javascript - Angular $stateProvider - 不匹配路由或 'blank' 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380489/