【问题标题】:How to access parent $scope variable when use ng-include?使用 ng-include 时如何访问父 $scope 变量?
【发布时间】:2014-04-29 03:31:06
【问题描述】:

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

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

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

我的项目看起来像这样Plunker

是否因为嵌套的 App 声明而发生此错误?

【问题讨论】:

  • 为什么要嵌套应用?
  • 我不需要它。去掉了孩子的“ng-app”,错误依旧。
  • 你需要在你的应用之前加载 Angular。所以,在你的 head 标签中切换两个脚本。

标签: javascript angularjs angularjs-ng-include


【解决方案1】:

AngularJS $scopes 在原型上是相互继承的。引用the wiki:

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

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

例如,如果父作用域具有x: 5 属性 - 您可以简单地使用$scope.x 访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多