Angularjs UI路由器:为什么有一个领先的/&引用;关于我的孩子状态';谁的网址?
我正在使用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: <!-- ..
/
,而我的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'
};