Javascript 具有父级的Ui路由器深度嵌套状态

Javascript 具有父级的Ui路由器深度嵌套状态,javascript,angularjs,angular-ui-router,state,Javascript,Angularjs,Angular Ui Router,State,我一直在四处搜索,没有找到任何我需要的东西,或者任何一般有效的东西 我正在构建的应用程序的状态如下: 应用程序-主父级状态 facebook-facebook所有路由的父状态 adwords-adwords所有路由的父状态 bing-bing所有路由的父状态 …-还有很多。。。很多 例如,如果我想要一个Facebook概览,它应该是app.Facebook.overview。然而,我尝试过的任何方法都没有奏效(dotannotation,parent在声明中,等等) 我尝试了摘要和父项的每一种组

我一直在四处搜索,没有找到任何我需要的东西,或者任何一般有效的东西

我正在构建的应用程序的状态如下:

应用程序
-主父级状态

facebook
-facebook所有路由的父状态

adwords
-adwords所有路由的父状态

bing
-bing所有路由的父状态

-还有很多。。。很多

例如,如果我想要一个Facebook概览,它应该是
app.Facebook.overview
。然而,我尝试过的任何方法都没有奏效(
dot
annotation,
parent
在声明中,等等)

我尝试了
摘要
父项
的每一种组合,以及
注释。我一直没能让它工作。它无法向我提供以下错误:

Could not resolve 'app.facebook.overview' from state 'app'
我做错了什么?我不明白,我已经阅读了相关文档,并在这里查看了大量有关Stackoverflow的问题。有什么想法吗

编辑:


我已经解决了这个问题。基本错误。我没有将模块包含在主
angular.module
声明中。好。。。我在为你编码。

我的答案是基于这个 基本上,您只需要将
/facebook
的url设置为
url:':facebook'
,这样就可以了。

我的答案是基于这个 基本上,您只需要将
/facebook
的url设置为
url:':facebook'
,这样就可以了。
事实上,我想说我很愚蠢

下面是一个正在工作的plunk:

如果我包含了这个模块,它会对我的代码有所帮助

var App = angular.module('app', [
    '... other modules ...',
    'ui.router',
    '... other modules ...',
]);
修正:

基本错误,但值得保留在这里,因为我花了相当长的时间才弄清楚如何使用
ui路由器
执行深层嵌套状态。我学到了一些东西:

  • 您不需要在抽象状态上有一个URL,但如果需要,它会预先准备好

    • 例如:
      app
      没有url,
      app.facebook
      的url为
      '/facebook'
      ,而
      app.facebook.overview
      的url为
      '/overview'
      。这意味着将使用的url最终将成为
      /facebook/overview
  • 可以将状态嵌套到任意深度

  • 如果继续往下看,则需要在状态声明中包含
    模板:“”
    ,这样它将根据需要继续输入下一个状态

    • 例如:
      app
      有一个模板页面,其中包含
      ,但
      app.facebook
      也必须声明
      模板:'
      ,这样它将在其下方插入您想要的页面(
      app.facebook.overview

我希望这能帮助更多的人,而不仅仅是我。花了一段时间才弄明白,但plunk中有代码。现在,问题已经解决了。我觉得我终于可以继续前进了……

我想说,事实上,我很愚蠢

下面是一个正在工作的plunk:

如果我包含了这个模块,它会对我的代码有所帮助

var App = angular.module('app', [
    '... other modules ...',
    'ui.router',
    '... other modules ...',
]);
修正:

基本错误,但值得保留在这里,因为我花了相当长的时间才弄清楚如何使用
ui路由器
执行深层嵌套状态。我学到了一些东西:

  • 您不需要在抽象状态上有一个URL,但如果需要,它会预先准备好

    • 例如:
      app
      没有url,
      app.facebook
      的url为
      '/facebook'
      ,而
      app.facebook.overview
      的url为
      '/overview'
      。这意味着将使用的url最终将成为
      /facebook/overview
  • 可以将状态嵌套到任意深度

  • 如果继续往下看,则需要在状态声明中包含
    模板:“”
    ,这样它将根据需要继续输入下一个状态

    • 例如:
      app
      有一个模板页面,其中包含
      ,但
      app.facebook
      也必须声明
      模板:'
      ,这样它将在其下方插入您想要的页面(
      app.facebook.overview
我希望这能帮助更多的人,而不仅仅是我。花了一段时间才弄明白,但plunk中有代码。现在,问题已经解决了。我觉得我终于可以继续前进了

var App = angular.module('app', [
    '... other modules ...',
    'ui.router',
    'app.facebook',
    '... other modules ...',
]);