使用过滤器删除AngularJS控制器中的列表项

时间:2016-10-13 08:29:53

标签: angularjs angularjs-filter

在AngularJS模板中,我可以使用过滤器select表示法排序 |列表中的元素:

<select ng-model="myListModel" 
        ng-options="c.id as c.name for c in myList | orderBy:'name' }">

同样地,我似乎可以使用$filter

在控制器中执行排序
$scope.myList = $filter('orderBy')($scope.myList,'name');

现在,我可以使用以下方法从模板中的列表中删除元素:

<select ng-model="myListModel"
        ng-options="c.id as c.name for c in myList | filter: { id : '!' + $scope.someId }">

但是我怎么能(类似于排序示例)使用$filter在控制器中执行相同的删除(从而避免了大量的JavaScript代码来执行删除)?

1 个答案:

答案 0 :(得分:0)

使用此代码。它使用了filter过滤器,并注意使用!实现了不等于以及要移除的ID的字符串表示。

$scope.filteredListToUseInTemplate = 
     $filter("filter")($scope.myList, { id: "!" + $scope.someId });

然后在模板中使用filteredListToUseInTemplate而不是myList