0

我的目标是访问父 $scope 变量。

这篇文章对我有很大帮助,但是我不知道如何在真实案例中做到这一点。当我在子 html 中声明控制器时,它会引发错误:

areq?p0=ParentController&p1=not a function, got undefined

我的项目看起来像这个Plunker

是否由于嵌套的 App 声明而发生此错误?

4

1 回答 1

0

AngularJS$scope的原型是相互继承的。引用维基

在 AngularJS 中,子作用域通常从其父作用域原型继承。此规则的一个例外是使用范围的指令:{ ... } - 这会创建一个在原型上不继承的“隔离”范围。(以及带有嵌入的指令)此构造通常在创建“可重用组件”时使用指示。在指令中,默认情况下直接使用父范围,这意味着您在指令中更改的来自父范围的任何内容也将在父范围中更改。如果您设置 scope:true(而不是 scope: { ... }),那么原型继承将用于该指令。

这意味着假设您没有通过scope: { ... },您可以直接访问父范围内的属性。

因此,例如,如果父范围有一个x: 5属性 - 您可以简单地使用$scope.x.

于 2019-01-12T15:43:55.127 回答