AngularJS,带有ui路由器和第一次请求时的附加状态

AngularJS,带有ui路由器和第一次请求时的附加状态,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在使用ui路由器编写AngularJS应用程序。状态“home”和“book”被加载到(parent)-ui视图元素中 我的路线设置如下所示: .config(function ($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise("/home"); $stateProvider .state('home', { url: '/home',

我正在使用ui路由器编写AngularJS应用程序。状态“home”和“book”被加载到(parent)-ui视图元素中

我的路线设置如下所示:

.config(function ($stateProvider, $urlRouterProvider) {
   $urlRouterProvider.otherwise("/home");
   $stateProvider
       .state('home', {
           url: '/home',
           templateUrl: '/home2/app'
       })

       .state('book', {
           url: '/book',
           templateUrl: '/book/index'
       })


       .state('book.overview', {
           url: '/overview',
           templateUrl: '/book/overview'
       })

       .state('book.edit', {
         url: '/edit/:bookid',
         templateUrl: '/book/detail',
         controller: 'bookeditcontroller'
       })

      .state('book.create', {
         url: '/create',
         templateUrl: '/book/detail',
         controller: 'bookeditcontroller'
      });

});
当用户跳转“book”状态时(通过a href),将成功加载并显示来自“/book/index”的模板。但是在第一个请求中,我还想从“/book/overview”加载模板,并将其显示在子ui视图中

我已经阅读了下面关于默认状态的主题

但这并不是我想要的行为。是否有一种方法可以告诉ui路由器何时加载了父状态“book”,同时也将“book.overview”加载到其(子)ui视图中


谢谢你的帮助

我想说你需要

这使我们能够在一种状态下思考-多种观点

州会是这样的

.state('book', {
       url: '/book',
       views : {
         '' : { templateUrl: '/book/index', },
         '@book': {templateUrl: '/book/overview' },
       }
   })
这样,我们将把两个视图放在一个状态中

  • 第一个将被注入index.html/root
  • 第二个将放在
    模板url:'/book/index',
这就是我们如何在一个(甚至更多的父母、祖父母…)状态下处理多个视图的方法

我用
布局创建了一个plunker,它确实显示了一点。包含多个视图的状态的代码段是:


我猜直接打开子状态也会打开父状态…是的!正是我想要的:-)谢谢!太好了享受酷炫的
ui路由器
$stateProvider
    .state('index', {
        url: '/',
        views: {
          '@' : {
            templateUrl: 'layout.html',
            controller: 'IndexCtrl'
          },
          'top@index' : { templateUrl: 'tpl.top.html',},
          'left@index' : { templateUrl: 'tpl.left.html',},
          'main@index' : { templateUrl: 'tpl.main.html',},
        },
      })