Angularjs 如何将ng if作用域传递给父作用域
Angularjs 如何将ng if作用域传递给父作用域,angularjs,angular-ng-if,Angularjs,Angular Ng If,ngIf在父范围内创建另一个范围。根据angular文档,正如我从中了解到的,理论上,is在范围内传递给父范围。但实际上,情况并非如此。我需要将此作用域功能传递给父作用域。我该怎么做呢 谢谢你的帮助。如果我理解你的问题,有很多方法可以解决这个问题(我试过)。提供了替代方案 方法1: 您可以在ng if中使用$parent,然后执行其余操作 方法2: 您只需要将结构修改为对象表示法,即{obj.yourval} <body ng-app="ngAnimate" ng-init="cool.m
ngIf
在父范围内创建另一个范围。根据angular文档,正如我从中了解到的,理论上,is在范围内传递给父范围。但实际上,情况并非如此。我需要将此作用域功能传递给父作用域。我该怎么做呢
谢谢你的帮助。如果我理解你的问题,有很多方法可以解决这个问题(我试过)。提供了替代方案 方法1: 您可以在
ng if
中使用$parent,然后执行其余操作
方法2:
您只需要将结构修改为对象表示法,即{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>
:{{cool.mess}
单击我:
选中时显示:
抓取样品
方法3:
您可以使用ng hide
而不是使用ng if
,它解决了所有的谜团(IMHO如果您与UI重构无关,那么这就是您的朋友)
PS:只是四舍五入,文档清楚地说如果使用
ng,那么它会创建一个子范围。因此,孩子可以访问父母的数据,而不是反过来。这就是为什么儿童结构的改变没有反映在父母层面的原因。使用上述任一选项。您能创建吗?请创建一个示例,我还建议使用“控制器作为”,并删除范围。如果ngIf Expression为false,我不需要编译代码,因为它会影响功能,而不是ui,所以方法3不是我正在寻找的解决方案。我无法理解方法2。这是如何解决问题的。此外,我对方法1也不是很满意。$parent在ng if中使用的优点是什么。谢谢。@xxlali通常$parent
在从子级内部访问时获取父级数据。再次看到我强调的内部
子对象,因为您知道在子对象范围内,它只能访问子对象的数据。因此,我们在child内部使用$parent
来获取父数据#ng if创建一个单独的实例(如果使用)。我没有时间尝试。当我尝试时,如果这解决了我的问题,我会标记。别担心。