【问题标题】:How to pass ng if scope to parent scope如何将 ng if 范围传递给父范围
【发布时间】:2015-11-16 13:10:53
【问题描述】:

ngIf 在父作用域内创建另一个作用域。根据角度文档,正如我从link 了解到的那样,理论上是在范围内传递到父范围。但在实践中,事实并非如此。我需要将此范围功能传递给父范围。我该怎么做。

感谢您的帮助。

【问题讨论】:

标签: angularjs angular-ng-if


【解决方案1】:

如果我理解你的问题(我试过),有很多方法可以解决这个问题。提供替代方案。

方法一:

您可以在 ng-if 中使用 $parent 并完成剩下的工作。

方法二:

您只需将结构修改为对象表示法,即{obj.yourval}

<body ng-app="ngAnimate" ng-init="cool.mess='Im removed';checked=true">
   <br/> : {{cool.mess}}
   <br/> Click me: <input type="checkbox" ng-model="checked" /><br/>
  Show when checked:
  <span ng-if="checked" class="animate-if">
   <input type="text" ng-model="cool.mess"/>
  </span>
</body> 

抽奖here

方法 3

您可以使用ng-hide 而不是使用解决所有谜团的ng-if恕我直言,如果您与 UI 重组无关,那么您就是朋友)。

PS:只是四舍五入,文档清楚地说明如果使用 ng-if 它会创建一个子范围。所以孩子可以访问父母的数据,而不是相反。这就是为什么孩子结构的修改没有反映在父母层面的原因。使用上述任何一种替代方法。

【讨论】:

  • 如果 ngIf experession 为 false,我不需要编译代码,因为它会影响功能而不是 ui,因此方法 3 不是我正在寻找的解决方案。我无法理解方法 2。这如何解决问题。此外,我对方法 1 也不是很满意。 $parent 使用 inside ng-if 有什么好处。谢谢。
  • @xxlali 通常$parent 在从子级别访问时会为您获取父级别数据。再次看到我在强调insidechild,因为您知道在子范围内它可以访问onlychild 的数据。所以我们在孩子内部使用$parent 来获取父母数据。 #ng-if 创建一个单独的实例(如果使用)。
  • 我没有时间尝试。当我尝试时,如果这解决了我的问题,我标记。别担心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
  • 2021-06-10
  • 2018-06-26
相关资源
最近更新 更多