我有一个单选按钮列表,当它被选中时,我将过滤器应用于列表
我的第一个广播项目的值为-1
,我想在选择该项目时删除任何过滤器。
<tr ng-repeat="m in model.list | filter: {GoalId: selectedGoal}" >
因此,当selectedGoal为-1时,我想显示所有项目(删除过滤器)
我尝试使用过滤器:{GoalId: selectedGoal && GoalId != -1}
和其他一些变体,但没有成功
我该怎么做?
答案 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 ;
};