【发布时间】:2017-04-05 06:39:33
【问题描述】:
如果我错了,请纠正我,我对 ng-if 指令的理解就像使用多个 ng-if 指令时的 if 和 else 条件。所以在我的代码中,我试图显示三个 div 基于它们在返回的 json 内部对象(metricList)中的存在。但它为同一个 if-else 创建了多个 div,这是错误的。请提出建议。
<div ng-repeat="p in profileData">
<div>{{p.company}}</div>
<div>{{p.department}}</div>
<div ng-repeat="emp in p.metricList">
<div ng-if="emp.Stat.Tag == 'Devo100'">
Devo100 if condition
</div>
<div ng-if="emp.Stat.Tag != 'Devo100'">
Devo100 else condition
</div>
<div ng-if="emp.Stat.Tag == 'Devo101'">
Devo101 if condition
</div>
<div ng-if="emp.Stat.Tag != 'Devo101'">
Devo101 else condition
</div>
<div ng-if="emp.Stat.Tag == 'Devo102'">
Devo102 if condition
</div>
<div ng-if="emp.Stat.Tag != 'Devo102'">
Devo102 else condition
</div>
<hr>
我的插件代码网址
【问题讨论】:
-
我们如何区分三种可能的
else条件?如果某物不等于一个值,它可能是任何其他值,对吧?你想渲染多少个实际的 div? -
您的代码完全符合您的描述。基本上每次迭代中有三个“if-else”块。他们都没有(基于您的 Plunkr)得到
emp.Stat.Tag == 'DevoXXX'条件真实,这就是为什么您只看到“其他”条件的原因。也许你应该多解释一下你真正想做的事情。 -
ng-if没有else。它只影响它所在的 HTML 元素,如果条件为真则渲染该元素,如果条件为假则不渲染该元素。每个ng-if语句都是独立的。 -
请注意,对于您的示例数据,
if条件似乎都不成立。 -
如果条件没有问题。 HTML 似乎不正确。
标签: angularjs json angularjs-ng-repeat