gpt4 book ai didi

php - AngularJS通过 "concat"过滤几条数据?

转载 作者:行者123 更新时间:2023-11-28 02:32:52 25 4
gpt4 key购买 nike

我正在为使用angularJS,其中一列是从

捕获的特定“id”
 <tr ng-repeat="x in stock | filter:Filter">
<td>{{x.ean}}{{x.date| date:'ddMM'}}{{x.brand| limitTo : 3 : begin}}</td>

这将返回一个类似“12342703ABC”的值

好吧,我还有一个搜索输入

<b>Filter:</b> <input type="text" ng-model="Filter" id="Filter">

当我使用它时,它会搜索每一列,但如果我在输入中写入特定的“id”(f.e 12342703ABC),我还需要它进行过滤,而这并没有发生。

有什么想法吗?

最佳答案

我能想到2个解决方案

1) 创建一个名为 id 的新属性,其中包含

的结果
{x.ean}}{{x.date| date:'ddMM'}}{{x.brand| limitTo : 3 : begin}}

在你的 Controller 中表达并将这些新创建的属性添加到你的列表中。如果您使用上述方法,您当前的过滤器将起作用。

   angular.forEach($scope.data, function(value, key){
//{{x.ean}}{{x.date| date:'ddMM'}}{{x.brand| limitTo : 3 : begin}}
var date = new Date(value.date);
var day = date.getDate()
var month = date.getMonth()+ 1;

value.id = value.ean;

if(day < 10)
value.id = value.id + "0"+ day;
else
value.id = value.id + day;

if(month < 10)
value.id = value.id + "0" + month;
else
value.id = value.id + month;

value.id = value.id + value.brand.substring(0,3);
});

2) 创建自定义过滤器

   $scope.myCustomFilter = function(row){

if($scope.Filter == undefined || $scope.Filter.length == 0){
return true;
}
else{
var data = "";
var date = new Date(row.date);
var day = date.getDate()
var month = date.getMonth()+ 1;

data = data + row.ean;

if(day < 10)
data = data + "0"+ day;
else
data = data + day;

if(month < 10)
data = data + "0" + month;
else
data = data + month;

data = data + row.brand.substring(0,3);

if(data.toLowerCase().indexOf($scope.Filter.toLowerCase()) >= 0)
return true;
else
return false;
}
}

Demo

关于php - AngularJS通过 "concat"过滤几条数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49512111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com