Javascript 过滤角度表td的问题

Javascript 过滤角度表td的问题,javascript,angularjs,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Ng Repeat,我用angularJS创建了一个表 HTML: 州通常返回值-“可用”、“已阻止”、“已计费”和“已拒绝”。我希望该表仅显示状态-“可用”和“已阻止”。 请检查并指出我做错了什么。如果您只想显示状态为“可用”和“阻止”的项目,我认为最好的选择是在ng repeat中应用角度过滤器。通过这种方式,ng repeat只计算表所需的项 您可以添加新过滤器,例如: myApp.filter('filterState', [], function() { return function(i

我用angularJS创建了一个表

HTML:

州通常返回值-“可用”、“已阻止”、“已计费”和“已拒绝”。我希望该表仅显示状态-“可用”和“已阻止”。
请检查并指出我做错了什么。

如果您只想显示状态为“可用”和“阻止”的项目,我认为最好的选择是在ng repeat中应用角度过滤器。通过这种方式,ng repeat只计算表所需的项

您可以添加新过滤器,例如:

myApp.filter('filterState',
  [], function() {
      return function(items) {
        return items.map(function(obj) {
          if (obj.state === 'available' || obj.state === 'blocked')
             return obj;
        });
});
之后,div元素应为:

<tr ng-repeat="employee in $data" | filter: filterState">

上面的代码返回一个布尔值,如果您有值的数组列表,这里只考虑一个值。
您应该编写一个for循环,然后检查值。
请参阅以下代码:

var filteredOutput=[];
for(var i=0;i<item.length; i++){
if(item[i].state.state.toLowerCase() === 'available' || item[i].state.state.toLowerCase() === 'blocked')
  {
    filteredOutput.push(item[i]);
  } 
}
return filteredOutput;
var filteredOutput=[];
对于(var i=0;i
<tr ng-repeat="employee in $data" | filter: filterState">
return (item.state.state.toLowerCase() === 'available' || item.state.state.toLowerCase() === 'blocked');
var filteredOutput=[];
for(var i=0;i<item.length; i++){
if(item[i].state.state.toLowerCase() === 'available' || item[i].state.state.toLowerCase() === 'blocked')
  {
    filteredOutput.push(item[i]);
  } 
}
return filteredOutput;