Angular ui-router:如何在解析子解析之前呈现父视图?

Mis*_*hko 5 angularjs angular-ui-router

考虑以下ui-router设置:

的index.html

<div ui-view></div>
Run Code Online (Sandbox Code Playgroud)

ui-router配置

$stateProvider
  .state('search', {
    abstract: true,
    url: '/search',
    views: {
      '@': {
        templateUrl: 'main.html'
      }
    }
  })
  .state('search.results', {
    url: '/results',
    views: {
      ...
    },
    resolve: {
      data: function() {
        ...
      }
    }
  })
Run Code Online (Sandbox Code Playgroud)

当我导航到search.results,main.html直到resolve解决后才会渲染.

ui-router有没有办法在子节点解析之前渲染父视图resolve

另一个相关问题

Wil*_*urn 4

正如评论中提到的,使用resolve的目的是防止在加载数据之前发生状态更改。您显然不希望出现这种行为,因为您希望在加载“数据”之前进入状态并渲染部分视图。解决方案是在控制器中加载“数据”,而不是使用解析。如果控制器中有依赖于“数据”的逻辑,只需将该逻辑移至回调中即可。