匹配ng-if时停止ng-repeat

时间:2015-12-10 22:57:12

标签: html angularjs

我有一个像这样的对象:

<a>

我有一个链接checkedSms我只想在特定情况下显示它:其中一个电话person.phone.phone[i].checkedSms = true为真(smsNumber.length > 0)或 <a ng-click="..." ng-if="person.smsNumber.length > 0" <div> ... </div> </a>

我可以做第二部分:

ng-repeat

但我不知道如何添加第一部分,并将其与上面的第二部分结合起来。尝试<a>重复检查人的电话,但多个匹配结果显示多个$template = file_get_contents('template.php');。链接应该只显示一次,只要一个条件匹配,就应该停止进一步检查。

希望有人可以帮助我。非常感谢。

2 个答案:

答案 0 :(得分:1)

我会在控制器中创建一个属性,称之为filterPersonList

$scope.filterPersonList = $scope.personList.filter(function (e) {
   return e.smsNumber.length > 0 || whatever other condition
})

然后使用ng-repeat和filterPersonList

答案 1 :(得分:1)

我就是这样做的。

在HTML中:

<a ng-if="checkForSms()" ng-click="...">

在控制器中:

$scope.checkForSms = function() {
// code that returns true if the conditions are met
}

另外,我会开始使用&#34; controllerAs&#34;语法准备Angular 2.0。 https://www.airpair.com/angularjs/posts/preparing-for-the-future-of-angularjs#3-2-remove-dependencies-on-scope