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

时间:2014-08-14 05:00:48

标签: angularjs angular-ui-router

考虑以下ui-router设置:

的index.html

<div ui-view></div>

ui-router配置

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

当我导航到search.results时,main.htmlresolve解析之前不会呈现。{/ p>

ui-router是否有办法在之前呈现父视图 resolve {{1}}?

Another related question

1 个答案:

答案 0 :(得分:4)

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