如何删除特定值的角度过滤器(显示全部)?

时间:2016-05-20 21:16:30

标签: javascript angularjs

我有一个单选按钮列表,当它被选中时,我将过滤器应用于列表 我的第一个广播项目的值为-1,我想在选择该项目时删除任何过滤器。

<tr ng-repeat="m in model.list | filter: {GoalId: selectedGoal}" >

因此,当selectedGoal为-1时,我想显示所有项目(删除过滤器) 我尝试使用过滤器:{GoalId: selectedGoal && GoalId != -1}和其他一些变体,但没有成功 我该怎么做?

2 个答案:

答案 0 :(得分:2)

看起来你最好写一个过滤函数。

https://docs.angularjs.org/api/ng/filter/filter

    <tr ng-repeat="m in model.list | filter: myFilterFn" >

    $scope.myFilterFn = function(m) {
      return (m.goalId === $scope.selectedGoal) || (m.goalId === -1);
    }

答案 1 :(得分:0)

您可以尝试的另一种解决方案是使用ng-show并始终更新所选的无线电burron值:

查看:

<div ng-repeat="value in list" ng-show="currentOption!=1 || value==1">
    <input type="radio" name="gender" value="{{value}}" ng-model="value" ng-click="checkOptions($event)" ng-show="currentOption!=1 || value==1"> {{value}}</br>
</div> 

控制器:

$scope.list = ['1','2','3','4'];
$scope.checkOptions =function ($event) {
   $scope.currentOption = $event.currentTarget.value ;
};