我的目标是访问父$ scope变量。
这post给了我很多帮助,但是我不知道如何在真实案例中做到这一点。当我在子html中声明控制器时,它会抛出一个错误:
areq?p0=ParentController&p1=not a function, got undefined
我的项目看起来像Plunker
是否因为嵌套的App声明而发生此错误?
答案 0 :(得分:0)
AngularJS $scope
的原型是彼此继承的。引用the wiki:
在AngularJS中,子作用域通常从其父作用域继承原型。该规则的一个例外是使用范围的伪指令:{...}-这会创建一个“隔离”范围,该范围不具有原型继承性。(以及带有包含性的伪指令)在创建“可重用组件”时通常使用此结构。指示。在指令中,默认情况下直接使用父作用域,这意味着您对来自父作用域的指令所做的任何更改也会在父作用域中发生变化。如果您设置scope:true(而不是scope:{...)),则该指令将使用原型继承。
这意味着,假设您没有通过scope: { ... }
,则可以直接访问父级范围内的属性。
例如,如果父作用域具有x: 5
属性,则可以简单地使用$scope.x
访问它。