2017-03-17 132 views
1

在網格列表中,我只想獲取數組中的特定對象。這裏是我的代碼。從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」 –

回答

0

採用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 –

0

爲什麼編寫自定義過濾器?此代碼可能無法在代碼段中工作。但在您的應用程序中嘗試使用此管道過濾器。我只是嘗試自己,併爲您提供簡短的回答。

<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>

0

另一個angualrjs方法將使用由角所提供的過濾器。

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

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

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