从angularjs中的一组对象中获取特定对象

问题描述:

在网格列表中,我只想获取数组中的特定对象。这里是我的代码。从angularjs中的一组对象中获取特定对象

$scope.incIncObj = []; 
$scope.gridList = {}; 
$scope.gridList.incIncObj = studyValue.incluExcluCriteria; 
console.log(studyValue.incluExcluCriteria); 

在C#中的的数据都是这样的,

var incluExcluCriteria = (from IE in _context.Incl_Excl_Criteria 
             where IE.Study_ID == request.Study_Id 
             select new 
             { 
              IE.Incl_Excl_Id, 
              IE.Study_ID, 
              IE.Criteria_Type, 
              IE.Criteria 
             }).ToList(); 

在控制台中,我让所有的名单,例如,

[Object { Incl_Excl_Id=2992, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2993, Study_ID=350, Criteria_Type="E", more...}, 
Object { Incl_Excl_Id=2994, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2995, Study_ID=350, Criteria_Type="E", more...}, 
Object { Incl_Excl_Id=2996, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2997, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2998, Study_ID=350, Criteria_Type="E", more...}, 
Object { Incl_Excl_Id=2999, Study_ID=350, Criteria_Type="E", more...}] 

但我想只得到具有这样的Criteria_Type =“I”的对象,

[Object { Incl_Excl_Id=2992, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2994, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2996, Study_ID=350, Criteria_Type="I", more...}, 
Object { Incl_Excl_Id=2997, Study_ID=350, Criteria_Type="I", more...}] 

给我任何建议

+0

使用过滤器来过滤仅CRITERIA_TYPE = “I” –

采用javascript filter原型法来筛选阵列

$scope.gridList.incIncObj = studyValue.incluExcluCriteria.filter(function(obj){ 
    return obj.Criteria_Type ==="I" 
}) 
console.log(studyValue.incluExcluCriteria); 

请注意您的JSON是无效的。使用冒号,而不是=当你将值分配给物业

{ Incl_Excl_Id=2992, Study_ID=350, Criteria_Type="I"}应该改变

这个{ Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"I"}

var studyValue = [{ Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"T"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"I"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"S"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"I"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"I"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"K"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"I"}, { Incl_Excl_Id:2992, Study_ID:350, Criteria_Type:"I"} ] 
 

 
var incIncObj = studyValue.filter(function(obj){ 
 
     return obj.Criteria_Type ==="I" 
 
    }) 
 
    console.log(incIncObj);

+0

Thanks..Its工作正常:) –

+0

@Vidhyasagar VASIS没有概率。如果这有助于确保vate和标记为答案:D –

为什么编写自定义过滤器?此代码可能无法在代码段中工作。但在您的应用程序中尝试使用此管道过滤器。我只是尝试自己,并为您提供简短的回答。

<div ng-repeat="c in collection | filter : 'I'"> 
 
     <span>{{ c.Incl_Excl_Id}}</span> 
 
     <span>{{c.Study_ID}}</span> 
 
     <span> {{c.Criteria_Type }}</span> 
 
    </div> 
 
    
 
    </div>

另一个angualrjs方法将使用由角所提供的过滤器。

首先在您的控制器中注入$filter服务。然后使用它像如下─

var filteredList = $filter('filter')(youFullList, {Criteria_Type:"I"}) 

更多详情 - https://docs.angularjs.org/api/ng/filter/filter