如何通过AngularJS+;用户界面路由器

如何通过AngularJS+;用户界面路由器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,用我上面漂亮的图片,我想解释一些事情: 标题有一些关于用户的API数据要检索(例如GET/user/me) 作者有自己的GET/Authors用于填充该视图 书籍和电影与作者一样,它们只是各自的状态 这就是我想要的: 我想要一个级联布局,这样可以先加载页面的主布局,然后再在上面加载“库”应用程序,而不会对用户体验造成任何“延迟”或阻塞 然而,就目前ui路由器的工作方式而言,如果我在整个应用程序中有一个解析,并将其置于“库”状态,则会发生“头”和“导航栏”状态被阻止,直到解析完成。我希望发生的是,

用我上面漂亮的图片,我想解释一些事情:

  • 标题
    有一些关于用户的API数据要检索(例如
    GET/user/me
  • 作者有自己的
    GET/Authors
    用于填充该视图
  • 书籍和电影与作者一样,它们只是各自的状态
  • 这就是我想要的:

    我想要一个级联布局,这样可以先加载页面的主布局,然后再在上面加载“库”应用程序,而不会对用户体验造成任何“延迟”或阻塞

    然而,就目前ui路由器的工作方式而言,如果我在整个应用程序中有一个解析,并将其置于“库”状态,则会发生“头”和“导航栏”状态被阻止,直到解析完成。我希望发生的是,首先加载父状态及其视图,然后在解析上加载“库”状态块。这样,您可以在加载页面后立即在浏览器中看到导航栏和标题,但在“库”解析完成之前,您将获得一个加载栏或微调器

    实现此功能的任何简单方法都是不使用resolves,而是将所有API逻辑都放在控制器内,但是这会导致3种资源中的每种资源的范围都限制在其控制器内,就是这样。也就是说,如果您在
    电影
    控制器中,则无法查看
    作者
    资源,因为
    作者
    的范围仅限于“作者”控制器。这使得web套接字之类的东西效率更低,甚至无法使用


    我在这里是否做错了什么导致我无法获得所需的功能,或者这种体系结构不可能做到这一点?

    标题和导航栏是它们自己的状态还是它们只是视图?我不认为您可以使用
    ui路由器同时激活两个状态
    是的,它们是ui路由器支持的多个命名视图。如果是这样,为什么不将
    resolve
    移动到
    root
    状态?那么你只需要解决一次。由于
    的子状态,因此它将具有相同的已解决承诺。我已经只解决了一次,效果很好。问题是,我希望父状态/视图在其子状态之前加载,这意味着子状态的解析不会影响父状态的加载时间。然而,情况似乎并非如此
                root
               / | \
              /  |  \
             /   |   \
       header content navbar
                 |
                 |
               library (abstract)
               / | \
              /  |  \
             /   |   \
        Authors Books Movies