工作原理 Angularjs UI-路由器

How works Angularjs UI-Router

我想了解 UI-Router 中 state 指令中的 parent 属性到底做了什么。

例如,如果我有:

$stateProvider
.state('base', {
    abstract: true,
    url: '',
    templateUrl: 'views/base.html'
})
.state('login', {
  url: '/login',
  parent: 'base',
  templateUrl: 'views/login.html',
  controller: 'LoginCtrl'
})

当我处于登录状态时,"base" 父级的哪些内容可供我使用?模板,它的范围,到底是什么? "base"状态的abstract属性有什么作用?

What does the 'abstract' attribute of the "base" state do?

它只是使那个状态'abstract'。抽象状态可以有子状态,但不能自己激活。

也就是说,你不能做 $state.go('base') 因为它是抽象的。 'abstract' 状态只是一种无法转换到的状态。

When I´m inside the login state, what things of the "base" parent will I have at my disposal?

login 状态是 base 的子状态,继承其父状态的 url 属性 作为其自身 url 的前缀。它还从其父级继承了以下内容:

是的,其子状态也可以访问父级的范围。没有其他东西是继承的(没有控制器、模板等)。

来源:Angular ui-路由器wiki