javascript - Angular $stateProvider - 不匹配路由或 'blank' 路由

标签 javascript angularjs angular-ui-router

我正在使用 $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/

相关文章:

AngularJS UiBoostrap Accordion 。找不到指令 'uibAccordion' 所需的 Controller 'uibAccordionGroup'

angularjs - 想要在菜单显示之前使用 ui-router 在 AngularJS 中运行一些初始化代码

javascript - 在 AngularJS 中,在模板内的过滤器中使用 $

javascript - angularjs 将 json 数组拆分为不同的数组

javascript - Angular ui 路由器 : 1 url trigger both parent and child state

AngularJS 强制应用程序从特定 URL 启动

javascript - 如何通过表单标签包装输入按钮?

javascript - Bootstrap 开关句柄宽度问题

javascript - AVA 测试抛出

java - 确保 NodeJS 生成 std​​out.on 仅在换行符上激活