我有一个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
答案 0 :(得分:1)
我不知道你如何使用ng-if但是它非常简单易用,这里只是一个简单的例子
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;
答案 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>