Filtro angular exatamente na chave do object

Eu tenho um pequeno aplicativo angular assim:

html

 
{{ user.username }}, {{ user.id }}

app.js

 function Ctrl($scope) { $scope.users = [ {"id":1,"username":"simon",}, {"id":8,"username":"betty",}, {"id":14,"username":"archie",}, {"id":3,"username":"jumbo1"}, ] } 

saída

 simon, 1 archie, 14 jumbo1, 3 

O que eu quero fazer é filtrar uma correspondência exata para o argumento do filtro E filtrar apenas no campo de ID.

Basicamente, eu quero que a saída seja:

saída

 simon, 1 

Eu estou usando o Angular 1.2.

No Angular 1.1.3 ou mais recente, você pode usar o seguinte:

 

{'id': 1} diz para comparar apenas com o id do campo. Isso te leva:

 simon, 1 archie, 14 

:true diz “correspondência exata”, resultando em:

 simon, 1 

Aqui está esse trabalho: http://jsfiddle.net/AM95H/

Para filtrar em uma lista de valores , se você tiver a lista em uma variável de escopo, eu adicionaria um filtro personalizado ao seu arquivo JS:

 $scope.filterValues = [1,8]; $scope.myFilter = function(value) { return ($scope.filterValues.indexOf(value.id) !== -1); }; 

Usado assim:

 

Para filtrar em uma lista de parâmetros , criaremos nosso próprio filtro. Nesse caso, seremos chamados uma vez com todos os valores de input para teste, em vez de uma vez por valor.

Então, o primeiro parâmetro que receberemos é o array de valores de input (usuários no seu caso) e o segundo parâmetro será o parâmetro que passamos ([1,8]). Em seguida, criaremos uma matriz de saída e adicionaremos (push) quaisquer itens no stream de input que correspondam a um dos filterValues . E retorne a matriz de saída.

 myApp.filter('myFilter', function () { return function(inputs,filterValues) { var output = []; angular.forEach(inputs, function (input) { if (filterValues.indexOf(input.id) !== -1) output.push(input); }); return output; }; }); 

E usá-lo assim:

 

Aqui está um exemplo disso: http://jsfiddle.net/AM95H/2/

Baseado em https://docs.angularjs.org/api/ng/filter/filter

Filtrar no modelo:

  {{friendObj.name}} {{friendObj.phone}}  

Filtrar no Controlador (com $ param)

 $scope.friendObj = $filter('filter')(data.friends, { id: parseInt($stateParams.friendId) }, true)[0]; 

Especifique a chave (propriedade) do object no filtro no qual você deseja aplicar o filtro:

 //Suppose Object var users = [{ "firstname": "RAM", "lastname": "KUMAR", "Address": "HOUSE NO-1, Example Street, Example Town" }, { "firstname": "SHAM", "lastname": "RAJ K", "Address": "HOUSE NO-1, Example Street, Example Town" }] 

Mas você quer aplicar filtro somente no nome