我目前正在使用AngularJs并使用多个选择框过滤输入数组。在过滤结果上,我运行ng-repeat来显示我现在过滤的数组中的每个元素。现在我的问题。我想将过滤后的输入数组保存为javascript变量,以便以后显示或打印整个结果。我实际上只希望将过滤后的输入数组保存为javascript变量甚至更好,每个ng-repeat的结果在变量中完全保存,但在再次应用新过滤器或过滤器后自行更新。我被困在这里。有没有顺利的方法来做到这一点。或者您是否更好地了解这里有什么用?谢谢你已经。 我们假设我们有一个语言过滤器和名称:
select byhub ,
COUNT(awbno),
sum(case when (datediff(uplopadtime,EntryDateTime)=0) then 1 else 0 end ),
sum(case when (datediff(uplopadtime,EntryDateTime)=1 or datediff(uplopadtime,EntryDateTime)=-1) then 1 else 0 end ),
sum(case when (datediff(uplopadtime,EntryDateTime)=2 or datediff(uplopadtime,EntryDateTime)=-2) then 1 else 0 end ),
sum(case when (datediff(uplopadtime,EntryDateTime) > 2 or datediff(uplopadtime,EntryDateTime) < -2) then 1 else 0 end )
from MyTable
group by byhub
现在我想要这样的东西:
$ scope.var = ... //过滤后的结果。
答案 0 :(得分:1)
您可以直接将数组存储在ng-repeat
<ul ng-repeat="sq in (filteredInput = (input| filter:languageModel| filter:nameModel))>
现在您可以访问$scope.filteredInput
以获取已过滤的数组
答案 1 :(得分:0)
您可以直接从javascript调用过滤器:
$scope.filteredInput = $filter('languageModel')($scope.input);
其中languageModel
是过滤器的名称。
确保在控制器中注入$filter
。
顺便说一句,在ng-repeat
元素上使用<ul>
是很奇怪的。更合适的是将其放在<li>
:
<ul>
<li ng-repeat="sq in input| filter:languageModel| filter:nameModel>
<span>Language: {{sq['Language']}}</span>
<span>Name: {{sq['Name']}}</span>
<li>
</ul>
答案 2 :(得分:0)
您可以在代码后面编写自己的过滤器功能,如下所示
$scope.filterlanguage=function(item){
//add your condition if satisfies return or null
if(condition)
{
return item;
}
return null;
}