今天,我一直在摆弄ui-router,以更好地了解Ionic的脚手架,而我注意到的一件事是,它们为“选项卡”的抽象状态提供了url。
我仅有两次使用抽象状态时,我使用一个空字符串作为url,并且注意到如果我不小心尝试导航到抽象状态(与子状态相对),则会收到错误消息:
无法转换为抽象状态“ [insertAbstractStateHere]”
编辑:
“此外,在实验中,当我尝试为我的抽象状态(在Ionic之外)分配一个url并仍然渲染嵌套状态视图时,我得到了一个很大的鹅蛋。什么都没有出现。”
以上引用的陈述是错误的!我在Plunker再次尝试过,嵌套状态的确出现了。
angular.module('routingExperiments', ['ui.router'])
.config(function($urlRouterProvider, $stateProvider) {
$stateProvider
.state('abstractExperiment', {
abstract: true,
url: '', //<--- seems as if any string can go here.
templateUrl: 'abstractExperiment.html'
})
.state('abstractExperiment.test1', {
url: '/test1',
templateUrl: 'abstractTest1.html'
});
});
显然我确实做错了。所以我的新问题是:
是否有任何理由为什么在使用抽象状态时会使用命名状态而不是空字符串,还是仅仅是一种样式选择?
'/home'
?在这一点上,这更是我困惑的根源。为什么一个相对于另一个?似乎没有什么不同。