我的控制器中有以下代码:
$scope.filteredTransactions = $scope.invoiceTransactionsObject.transactions.concat(); // make a copy of the initial array
if ($scope.searchTerm.message)
{
var search = $scope.searchTerm.message;
$scope.filteredTransactions = $filter('filter')($scope.filteredTransactions, ({ message: search } || { item: search }));
}

我希望能够通过键入一些值进行过滤,并在消息列或项目列中进行搜索。根据{{3}}它应该可以工作,但它没有,如果我输入可以在消息中找到的东西,它可以工作,但是当我从项中输入内容时,它返回空数组。
你知道我的错误在哪里吗?
答案 0 :(得分:2)
更新删除不相关/错误的初始答案
由于您在JS脚本中应用$ filter,并且它没有使用$ filter的任何高级功能,因此我切换到JS本机的过滤方法阵列:
$scope.filteredTransactions = $scope.invoiceTransactionsObject.transactions.concat(); // make a copy of the initial array
if ($scope.searchTerm.message)
{
var search = $scope.searchTerm.message;
$scope.filteredTransactions = $scope.filteredTransactions.filter(function (trans) {
return trans.message.toLowerCase().indexOf(search) >= 0 || trans.item.toLowerCase().indexOf(search) >= 0;
});
}
...假设$ filter不区分大小写并匹配字符串中的任何位置。如果这不是$ filter的功能和/或不是您想要的功能,那么您可以相应地调整代码。