我当前正在尝试使用输入字段中的搜索词来过滤对象数组。
我知道有一种方法可以使用此代码ng-repeat="item in list| filter:search_term
将搜索词应用于ng-repeat指令。但我需要在应用程序的JavaScript部分处理已过滤的列表。有没有办法如何访问应用程序的JS部分中的筛选列表,或者我是否必须选择另一种方法来过滤我的数组?
Here 是我(目前无效)的示例代码。
修改
我正在寻找一种完全完成任务的方法而不使用ng-repeat
上的过滤器!最后,应该可以仅使用简单的ng-repeat="item in filtered_list
答案 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