我试图使用ng-if
来在满足条件时显示某些行,但似乎无法完全正确地使其工作。
<div style="margin-bottom: 1em;">
<h4><!-- content omitted for brevity--></h4>
<p>
<strong>Covered:</strong>
<a ng-href class="pointer" data-ng-repeat="life in data.list2 track by $index" ng-if="life.beneficiary.length > 0" ng-click="c.editBeneficiary(life)">
<!-- content omitted for brevity-->
</a>
<a ng-href class="pointer" ng-if="life.beneficiary.length = 0" ng-click="c.addBeneficiary()">Add Beneficiary <i class="fa fa-plus-circle" style="color: green;"/></a></p>
</div>
在上面的代码中,如果受益人的数量大于0(
ng-if="life.beneficiary.length > 0"
),我想列出名称并允许用户在必要时进行编辑。这部分工作正常。然而,如果受益人的数量等于0,则我希望有一个链接,上面写着“添加受益人”,并允许用户这样做。我把
ng-if
语句放在了<a>
标签中,我不确定这是否正确。当我用没有受益人的用户登录时,“添加受益人”链接没有显示出来。
- 我在这里做错了什么?
ng-repeat
放在第一个<a>
上,而不是在两个<a>
标签或容器元素上都放置ng-repeat
。 - kennypowersng-repeat
。我也看到了你的答案,但我还没有理解。你为什么需要第二个ng-repeat
?我认为你可能假设了那一部分。那段代码将生成与发布在问题中的代码完全不同的HTML。 - lealceldeiroeditBeneficiary
函数的 <a> 标签都必须在ng-repeat
内(因为它们用于编辑元素),最后再添加一个用于添加新受益人的标签(但仅限于末尾)。显然,你认为这有不同的行为方式(我并不是说这种方式有错。向原帖发布者询问或许是个好主意 :) )。 - lealceldeiro<a>
标签的ng-if
中使用了life
。但是那里不存在life
。第二个<a>
标签位于创建life
的ng-repeat
之外。因此,你需要创建一个容器元素,例如一个<div>
,并将ng-repeat
添加到其中。在该<div>
内部,您可以使用单独的ng-if
语句放置两个<a>
标签。这样可以实现你想要的效果。或者你可以将相同的ng-repeat
添加到两个<a>
标签中。 - kennypowers