当我一次选择两个选择按钮时,我在显示和隐藏行时遇到问题。
仅使用一个按钮,我就可以显示/隐藏正确的行。同时使用两个按钮,将不显示任何行。
代码中的逻辑错误在哪里?
请检查:http : //jsfiddle.net/xEyJZ/83/
<div ng-controller="MyCtrl">
<p>
<input type="checkbox" ng-init="showNew=false" ng-click="showNew =! showNew"><span> Show new only</span> <br>
<input type="checkbox" ng-init="showOld=false" ng-click="showOld =! showOld"><span> Show old only </span>
</p>
<table border="1">
<tr ng-repeat="person in persons" ng-class="{'newp':person.newp, 'oldp':person.oldp}"
ng-hide="(!person.newp && showNew) || (!person.oldp && showOld)">
<td>{{ person.id }}</td>
<td>{{ person.name }}</td>
<td>{{ person.city }}</td>
</tr>
</table>
</div>
您可以在过滤器中使用比较器:
ng-repeat="person in persons | filter:{newp:showNew, oldp:showOld}:showTest"
并在控制器组比较功能中:
$scope.showTest = function(actual, expected){
if(!$scope.showNew && !$scope.showOld)
return true;
return angular.equals(expected, actual);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句