Descrição

O componente gumga-many-to-one-ng é utilizado para filtrar uma lista de registros dinâmicamente. Ele também permite adicionar um registro caso a busca retorne uma lista vazia e visualizar os atributos do registro selecionado.

Instalação

// npm
npm i gumga-many-to-one-ng --save

// bower
bower install gumga-many-to-one-ng --save

// HTML
<script src="node_modules/gumga-many-to-one-ng/dist/gumga-many-to-one.min.js"></script>
// ou
<script src="bower_components/gumga-many-to-one-ng/dist/gumga-many-to-one.min.js"></script>
Usando
{{match.model.nome}}
<form name="manytoone">
  <gumga-many-to-one
    value="produto"
    list="produtos"
    search-method="getSearch(param)"
    field="nome"
    authorize-add="false"
    async="false"
    display-info="false">
    <match>
      <div>{{match.model.nome}}</div>
    </match>
  </gumga-many-to-one>
</form>
angular.module('app', ['ui.bootstrap', 'gumga.manytoone'])
  .controller('Ctrl', function($scope){
    $scope.produtos = [
      { nome: 'Notebook Acer Aspire', id: 1 },
      { nome: 'Motorola Moto X (2a Geração) 32GB', id: 2 },
      { nome: 'Smart TV LED 43" Samsung', id: 3 },
      { nome: 'Ar Condicionado Split 7000 BTU/s', id: 4 }
    ];
    $scope.produto = $scope.produtos[1];

    // Este método precisa ser assíncrono
    $scope.getSearch = function(param){
        return $q(function(resolve){
            var arr = $scope.produtos.filter(function(produto){
              return produto.nome.indexOf(param) != -1;
            })
            resolve(arr);
        })
    };
  })
Atributos
Parâmetro Tipo Requerido Descrição
value Object Sim Binding com o registro selecionado na lista.
list Array Sim Lista dos registros que serão buscados.
field String Sim Atributo do registro que está sendo procurado e o que estará na lista.
description String Não atributo de uma possível descrição.
search-method Function Sim Busca assíncronasearch-method="getSearch(param)".
authorize-add Boolean Não Mostrar o botão de adicionar um registro caso a busca não tenha retornado nenhum registro.
async Boolean Não Controle para o post-method, caso true, faça o post, se false fará apenas o push.
post-method Function Não Dependendo do parâmetro async, chamará a função com o parâmetro post-method="post(value)" e caso o parâmetro async não esteja presente ou seja falso, fará um push na lista.
disabled Boolean Não Habilitar ou desabilitar o componente.
async Boolean Não Controle para o post-method, caso true, faça o post, se false fará apenas o push.
display-info Boolean Não Mostrar o botão agrupado ao input e ícones na lista de resultados, que mostra os dados do resultado.
on-select Function Não Executada quando o usuário selecionar um resultado, o parâmetro value é obrigatório.
tab-seq Number Não Equivalente ao tabindex, foi usado tabseq para que o elemento many-to-one, não fique na lista de tabindex.