2016-04-07 3 views
2

У меня есть образец Json. Я использую ключевую ценность.Angualrjs Фильтр-матрица в контроллере

fiter не сортировать точное значение

Пример:

angular.module('myApp').controller('testController', ['$filter', '$scope', 
function($filter, $scope) { 

    var obj = '[{"id":"1","m_id":1,"value":"Male"}, 
       {"id":"2","m_id":1,"value":"Female"}, 
       {"id":"3","m_id":1,"value":"Other"}, 
       {"id":"45","m_id":9,"value":"Single"}, 
       {"id":"46","m_id":9,"value":"Married"}, 
       {"id":"47","m_id":10,"value":"Father"}, 
       {"id":"48","m_id":10,"value":"Mother"}, 
       {"id":"61","m_id":10,"value":"Cousin"}, 
       {"id":"62","m_id":10,"value":"Other"}]'; 

    var obj1 = JSON.parse(obj); 
    var result = $filter('filter')(obj1, { 
     m_id : "1" 
    }); 
}]); 

Выход:

[{"id":"1","m_id":1,"value":"Male"}, 
{"id":"2","m_id":1,"value":"Female"}, 
{"id":"3","m_id":1,"value":"Other"}, 
{"id":"47","m_id":10,"value":"Father"}, 
{"id":"48","m_id":10,"value":"Mother"}, 
{"id":"61","m_id":10,"value":"Cousin"}, 
{"id":"62","m_id":10,"value":"Other"}] 

Ожидаемый результат:

[{"id":"1","m_id":1,"value":"Male"}, 
{"id":"2","m_id":1,"value":"Female"}, 
{"id":"3","m_id":1,"value":"Other"}] 

Click here

ответ

3

Вы можете сделать это так же, с помощью Javascript Filter():

var result = obj1.filter(function(v){ 
    return v.m_id == 1; 
}); 

DEMO


В AngularJS v.1.1.3 точный фильтр provided natively

var result = $filter('filter')(obj1, 
    {m_id : 1}, 
    true // ==========> this is for exact match 
); 

Working DEMO

+0

Вопрос для Angular (гораздо более сложная система фильтрации с пользовательскими выражениями и т. Д. И т. Д.) – Nathan

+1

@Nathan - его собственный Javascript-код, который работает. – Manwal

+0

Это моя точка зрения: вы ответили на это для родной JS, когда вопрос для AngularJS. – Nathan

1

Изменить

var result = $filter('filter')(obj1, { 
     m_id : "1" 
}); 

в

var result = $filter('filter')(obj1, function(item) { return item && item.m_id == 1; }); 

Demo here

+0

Я попытался, но получить тот же результат. (с m_id 1 и 10) – RSKMR

+0

любое другое предложение? – RSKMR

+0

Проверьте эту ссылку: https://jsfiddle.net/rajinikumarr/U3pVM/23860/ – RSKMR

Смежные вопросы