在ui.router

时间:2019-05-11 22:13:40

标签: angularjs angular-ui-router

我只是想问一下在一种状态下嵌套视图以及如何在这些视图之间共享某些上下文。

我只有这样的index.html

<body ng-app="app">
  <div ui-view="header"></div>
  <div ui-view="content"></div>
  <div ui-view="footer"></div>
</body>

我有一个header.html,它在ui-view内部呈现,名为header,如下所示:

<h1>{{title}}</h1>

这是一个非常简单的模板,但它显示了我遇到的问题。 呈现名为ui-view的{​​{1}}组件时,它取决于路由(状态)。 contentheader是在抽象父级footer状态下定义的,因此我不需要在子级状态下重复它们。子状态仅为父root状态(content)定义root

如何从子状态控制index.html中的title范围变量,以便我可以轻松地根据状态在此header.html视图中切换title。我在互联网上看到的每个示例都假设有一个静态的页眉和页脚模板,没有任何变量。

我正在使用headerangularjsui.router是否在单状态新上下文中为每个视图定义?

1 个答案:

答案 0 :(得分:1)

您要寻找的是services。它们基本上是在控制器外部保存应用程序状态的对象(例如,您可以使用它们在两个控制器之间共享数据)。

还有一个$rootScope对象,您可以利用(每个注入它的控制器都可以使用它的单个作用域),但是我建议使用的方法要比第一种方法少(特别是出于将来维护的原因-如果您曾经想升级到angular,它没有rootScope。