ng-if和ng-repeat在表格中进行比较

时间:2016-08-29 07:44:04

标签: angularjs angularjs-ng-repeat

我有一个id列(1,2,3,4,5)的表,我有一个元素数组。 $ scope.elements的值为 - 1,3。

<?php if(isset($_SESSION['user_session_organizer']))
                { ?>
                    <li><a href="triplist.php" class="smoothScroll">VIEW TRIPS</a></li>
                <?php }elseif(isset($_SESSION['user_session']))
                {
                ?>
                <li><a href="triplist.php" class="smoothScroll">VIEW TRIPS</a></li>
                <?php }else{ ?>
                    <li><a data-toggle="modal" href="#organizer" class="smoothScroll">ORGANIZE TRIPS</a></li>
                    <?php } ?>

使用这个我必须比较元素数组中的值和表中的id。如果两个idd匹配,我必须隐藏该行。

当我使用<ul ng-repeat="x in elements> <li>{{x}}</li> </ul> 时,由于我使用ng-repeat,每次迭代都会创建多行......

任何人都可以帮我解决这个问题...

更新:     hides2 = [1,3,4]      ng-repeat =“x in [hides2] track by $ index”ng-if =“x!= 3”

但是表格显示了这些值,(它没有隐藏1,3,4条记录)      [enter image description here] 1

2 个答案:

答案 0 :(得分:1)

我不知道你如何使用ng-if但是它非常简单易用,这里只是一个简单的例子

&#13;
&#13;
 angular.module("app",[]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>

<body ng-app="app">
  <div ng-repeat="item in [1,2,3,4,5,6,1,2,4,5] track by $index" ng-if="item !== 1">{{item}}</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这里尝试这个..在控制器中创建一个函数,如下所示

$scope.elements = [1,2,3,4,5];
$scope.checkMatch = function(id){
   if($scope.elements.indexOf(id) !== -1){
     return true;
   }else{
     return false;
   }
}

在你的模板中,在ng-if中调用此方法,如下所示,并在checkMatch ...

中传递id
<ul ng-repeat="x in elements>
<li ng-if="checkMatch(x)">{{x}}</li>
</ul>