Angular ui-router命名视图抽象控制器不激活

时间:2016-02-06 22:20:02

标签: javascript angularjs angular-ui-router

当子视图也实现控制器时,在抽象命名视图中使用控制器似乎不会触发该控制器,只有子控制器触发。我的设置如下:

$stateProvider
      .state('app', {
        abstract: true,
        views : {
          header: {
            template: "<p>My header</p>"
          },
          section: {
            template: "<ui-view />",
            controller: function () {
              alert('loaded main control');
            }
          }
        }
      })
      .state('app.home', {
        url: '',
        views: {
          'section@': {
            template: "<p> My initial content here </p>",
            controller: function () {
              alert("loaded home control");
            }
          }
        }
      })

http://plnkr.co/edit/WjUYwEfrNbZrdpUQAole?p=preview

在我看来,上面的演示应该触发两个警报,为什么不发生这种情况?

1 个答案:

答案 0 :(得分:0)

app.home中,您使用section@作为视图名称,这是绝对匹配,然后与摘要{{1}中定义的section视图冲突国家。

事实上,第一个app视图似乎毫无用处。您可以尝试以下代码段。

section

Multiple Named Views section of the ui-router guide.

中提供了更多详细信息