使用angularJS中的ng-if条件停止循环

时间:2015-09-18 12:41:21

标签: javascript angularjs loops if-statement

我有这个代码。 $scope.counter = '1';

<div ng-repeat="cat in catadata">
   <div ng-if="cat.TopCategoryID = 2" >
      <div ng-if="counter = 1" >
         <div class="feedsDisplay" ng-init="counter = counter + 1">
            Creater Img:{{cat.CreatedBy_Profile.Picture.URI}}" 
         </div>
      </div>
   </div>
</div>

我想在counter = 2时停止循环,我想只显示1个结果。

ng-init="counter = counter + 1
{{counter}}

显示11111它应显示12345

3 个答案:

答案 0 :(得分:2)

您正在与=而非==

进行比较

试试这个

ng-if="counter == 1"

counter的值是字符串。在+

之前添加counter符号

试试这个

ng-init="counter = +counter + 1"

答案 1 :(得分:2)

你无法有条件地停止ng-repeat。 要只打印一个结果,您可以使用

<div ng-repeat="cat in catadata | limitTo : 1">

OR

<div>{{catadata[0]}}</div>

答案 2 :(得分:1)

不要像这样误用ng-repeatng-initng-if,而是在呈现之前尝试提取第一个匹配的cat,例如在控制器,指令或服务中:

for (var i = 0, maxI = catadata.length; i < maxI; ++i) {
    if (cat.TopCategoryID === 2) {
        $scope.firstMatchingCat = cat;
        break;
    }
}

然后在模板中:

<div class="feedsDisplay">
    Creater Img:{{firstMatchingCat.CreatedBy_Profile.Picture.URI}}" 
</div>