Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs UI路由器:为什么有一个领先的/&引用;关于我的孩子状态';谁的网址?_Angularjs_Angular Ui_Angular Ui Router - Fatal编程技术网

Angularjs UI路由器:为什么有一个领先的/&引用;关于我的孩子状态';谁的网址?

Angularjs UI路由器:为什么有一个领先的/&引用;关于我的孩子状态';谁的网址?,angularjs,angular-ui,angular-ui-router,Angularjs,Angular Ui,Angular Ui Router,我正在使用AngularJS和ui路由器。我的项目根目录位于/,而我的angular应用程序位于/panel/ 我有5种状态:login,logout,main(抽象状态),main.home,和main.holiday 一开始一切似乎都很好,我可以访问main.home,login,logout。然而,当我访问main.holiday时,我注意到有一个前导斜杠/panel//holiday 每个州都有一个例子(我认为把每个片段都放在这里是个坏主意) 我的SPA HTML: <!-- ..

我正在使用AngularJS和ui路由器。我的项目根目录位于
/
,而我的angular应用程序位于
/panel/

我有5种状态:
login
logout
main
(抽象状态),
main.home
,和
main.holiday

一开始一切似乎都很好,我可以访问
main.home
login
logout
。然而,当我访问
main.holiday
时,我注意到有一个前导斜杠
/panel//holiday

每个州都有一个例子(我认为把每个片段都放在这里是个坏主意)

我的SPA HTML:

<!-- ... -->
<head>
<base href="/panel/">
</head>
<!-- ..-->


我想这是某种虫子,不是吗?顺便说一句,这里有一个链接,指向我似乎重现问题的地方。

我用两种方法解决了这个问题:

  • 只需删除
    main
    抽象状态的
    url
    属性。或者
  • main
    抽象状态的
    url
    属性设置为空字符串(
    url:'

  • 摘自我的Reddit回复(尽管我似乎不是第一个插话):


    也许可以试试
    ?它会无缘无故地打开指向
    窗格/
    窗格/
    的链接。让我检查一下。听起来你好像试过
    ;我刚核实过。当我检查链接(例如,
    domain.com/pane/user/5
    domain.com/pane/home
    )时,我正在使用的
    正好是/pane/。您能提供一个JSFIDLE重现问题吗?您可以省略抽象状态的
    url
    字段。你的问题仍然很奇怪。虽然我自己已经回答了这个问题,但我还是投票支持你说得更准确。谢谢
    // This can have an empty URL unless it needs to add something useful
    // For example, it could be '/www' but '/' is pointless and the cause of your issue
    var main = {
      name: 'main',
      abstract: true,
      url: '',
      template: '<div ui-view></div>'
    };
    
    // Add a '/' URL to this state since it's not abstract.
    // Else changing from another state to this one won't impact the URL, which is weird
    var home = {
      name: 'main.home',
      url: '/',
      template: 'You are in main.home'
    };