É possível passar um argumento para a função de filtro para que você possa filtrar por qualquer nome?
Algo como
$scope.weDontLike = function(item, name) {
console.log(arguments);
return item.name != name;
};
javascript
angularjs
angular-filters
metamorfo
fonte
fonte
Pelo que entendi você não pode passar argumentos para uma função de filtro (ao usar o filtro 'filtro'). O que você teria que fazer é escrever um filtro personalizado, parecido com este:
Aqui está o jsFiddle funcional: http://jsfiddle.net/pkozlowski_opensource/myr4a/1/
A outra alternativa simples, sem escrever filtros personalizados, é armazenar um nome para filtrar em um escopo e, em seguida, escrever:
fonte
Na verdade você pode passar um parâmetro ( http://docs.angularjs.org/api/ng.filter:filter ) e não precisa de uma função customizada apenas para isso. Se você reescrever seu HTML como a seguir, funcionará:
http://jsfiddle.net/ZfGx4/59/
fonte
filter:['Adam', 'john']
Você pode simplesmente fazer assim No modelo
No filtro
fonte
Estendendo a resposta de pkozlowski.opensource e usando o
array's
método de filtro embutido javascript , uma solução aprimorada poderia ser esta:Aqui está o link jsfiddle .
Mais sobre o filtro Array aqui .
fonte
Você pode passar vários argumentos para o filtro angular!
Definindo meu aplicativo angular e uma variável de nível de aplicativo -
Seu filtro será como: -
E de HTML você enviará dados como: -
Aqui estou enviando um objeto JSON para o filtro. Você também pode enviar qualquer tipo de dados como string ou número.
também você pode passar um número dinâmico de argumentos para filtrar; nesse caso, você deve usar argumentos para obter esses argumentos.
Para uma demonstração de trabalho, vá aqui - passando vários argumentos para o filtro angular
fonte
Você pode simplesmente usar
| filter:yourFunction:arg
E em js
fonte