Angular UI路由器在定位父级时嵌套视图

时间:2014-12-16 21:40:04

标签: angularjs angular-ui-router

鉴于此片段

$stateProvider
    .state('authorized', {
        abstract: true, 
        template: "<div ui-view='page'>hello</div>"
    })
    .state('task', {
      parent: 'authorized',
      abstract: true,
      url: '/task',
    })
    .state('task.create', {
      url: '/create',
      'views': {
        'page@authorized': {
          template: "word<div ui-view='boom'>replaced</div>",
          views: {
            'boom': {
              template: "up"
            }
          }
        }
      }
    })

我期待看到“单词向上”,而不是我看到“单词被替换” - 我认为我误解了ui如何针对父母状态,帮助升值。

Demo plunk:http://plnkr.co/edit/69kdcy?p=preview

1 个答案:

答案 0 :(得分:2)

我更新了plunker with this change

    .state('task.create', {
      url: '/create',
      'views': {
          'page@authorized': {
             template: "word<div ui-view='boom'>replaced</div>",
          },
          'boom@task.create': {
              template: "up"
          }
        }
    })

那么,有什么不同? views 定义位于同一级别。因为我们想将繁荣注入当前状态模板,所以我们必须在末尾添加其名称 'boom@task.create'

检查here

如果您不介意,请查看此Q & A以了解我如何尝试使用嵌套进行标准布局