AngularJS过滤器对象数组,带有JavaScript中的搜索词

时间:2017-01-23 09:55:08

标签: javascript angularjs arrays

我当前正在尝试使用输入字段中的搜索词来过滤对象数组。 我知道有一种方法可以使用此代码ng-repeat="item in list| filter:search_term将搜索词应用于ng-repeat指令。但我需要在应用程序的JavaScript部分处理已过滤的列表。有没有办法如何访问应用程序的JS部分中的筛选列表,或者我是否必须选择另一种方法来过滤我的数组?

Here 是我(目前无效)的示例代码。

修改
我正在寻找一种完全完成任务的方法而不使用ng-repeat上的过滤器!最后,应该可以仅使用简单的ng-repeat="item in filtered_list

来显示已过滤的列表

3 个答案:

答案 0 :(得分:1)

您也可以在控制器中使用过滤器。这是你的更新小提琴。我希望这可以提供帮助。

`https://jsfiddle.net/ymcfugzp/3/`

答案 1 :(得分:0)

您应该在Component内进行过滤。

你可以拥有一个过滤功能,也可以使用其他处理功能,类似于下面的功能:

myFilter(term) {
  const filtered = list.filter(element => element.term === term);
  // Do other stuff in here.
  return filtered;
}

然后你的模板就像那样简单:

ng-repeat="myFilter(term)"

答案 2 :(得分:0)

你可以这样做:ng-repeat="item in filteredList = (list| filter:search_term)。 然后通过filteredList获取$scope.filteredList

或者像这样使用控制器别名: ng-repeat="item in $ctrl.filteredList = ($ctrl.list| filter:search_term) - 为了不将数据保存在$scope