我的ui路由器状态提供商有以下状态:
$urlRouterProvider.when('/parent','/parent/child'); $stateProvider.state('parent',{ url: "/parent",abstract: true }); $stateProvider.state('parent.child',{ url: "/child" });
遵循ui-router文档中说明的here的默认子状态的最佳做法.
然而,当我现在在我的文档中使用ui-sref引用父类的一个链接,例如< a ui-sref =“parent”> Link< / a>我总是收到一个错误,说我不能转换到一个抽象的状态.当我手动输入URL到地址栏并按Enter输入一切正常.
相关Plunker:http://plnkr.co/edit/d3Z0tOwC3VCTPqGiB0df?p=preview
如何将ui-sref与默认子状态相结合?
抽象状态不能直接定位.他们主要作为建立儿童国家的基础.唯一的原因是它的URL正常工作是/ parent被.when捕获
原文链接:/angularjs/143166.html这意味着当你调用一个孩子时
<a ui-sref="parent.child">
父进程中的子进程被加载,这意味着父进程将被加载为它周围的层.
所以,永远不要瞄准抽象状态本身.就像在门框内有一扇门.你只能打开门和门(小孩)互动,但是直接从框架(父母)开始.但是,当您与门的互动时,门和框架是被加载的系统的一部分.
您可以给孩子一个空的URL,这样它不会附加任何东西到父状态URL,然后将被加载.
查看更多信息:
https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views#abstract-states