O componente GumgaController foi desenvolvido como um substituto ao componente $populate. Sentimos que os desenvolvedores, ao utilizar o $populate, não entenderam muito bem o porquê do componente(talvez por causa do nome, também). Demos um passo atrás e chegamos neste componente que faz o que o $populate faz, porém funcionando também fora do $scope do controller, podendo ser colocado dentro de qualquer objeto. Este componente pode ser utilizado para criar os métodos que fazem conexão com o service GumgaREST, que podem ser utilizados para fazer a comunicação com o BackEnd, respeitando o modelo MVC do Angular. Além disse, ele tem suporte a eventos próprios, não necessitando do $scope.
// npm
npm i gumga-controller-ng --save
// bower
bower install gumga-controller-ng --save
//Injeção do modulo
angular.module('yourApp', ['gumga.controller']);
<script src="node_modules/gumga-counter-ng/dist/gumga-controller.min.js"></script>
<script src="bower_components/gumga-counter-ng/dist/gumga-controller.min.js"></script>
angular.module('yourApp', ['gumga.controller'])
.controller('ctrl', function($scope, SampleService, gumgaController){
gumgaController.createRestMethods($scope,SampleService,'sample')
// O objeto pode ser retornado caso queira
// var user = gumgaController.createRestMethods({}, SampleService, {
// noScope: true,
// identifier: 'Sample'
// })
$scope
.sample
.methods.get(0)
.on('getSuccess',function(data){
// ...
})
.on('getError', function(data){
// ...
})
.methods.post({});
$scope
.sample
.on('postTagSuccess', function (data){
$scope.sample.execute('post');
})
})
| Método | Descrição | Retorno |
|---|---|---|
| createRestMethods(container, service, config/id) | A função createRestMethods é a função responsável pelo comportamento de criar os métodos do controlador. Ela cria um objeto que serve para agrupar os comportamentos. O objeto tem o seguinte formato | [VOID] |
| post(value) | Função responsável por fazer o post de um novo registro. | [EVENT] |
| put(value) | Função responsável por fazer o put de um registro. | [EVENT] |
| get(params) | O método get aceita um parâmetro params e retorna uma promise de uma chamada HTTP do tipo GET. | [HttpPromise] |
| resetAndGet() | O método resetAndGet reseta a query atual e performa uma chamada HTTP do tipo GET. | [HttpPromise] |
| getById(id) | O método getById aceita um parâmetro id e retorna uma promise de uma chamada HTTP do tipo GET. | [HttpPromise] |
| getNew() | O método resetAndGet reseta a query atual e performa uma chamada HTTP do tipo GET. | [HttpPromise] |
| delete(data) | O método delete recebe como parâmetro um objeto que será deletado. O objeto deve ter um parâmetro ID, que será passado para a url da chamada. | [HttpPromise] |
| sort(field, way) | O método sort recebe dois parâmetros para fazer a ordenação: field e way, que determinarão qual campo será ordenado e se será 'asc' ou 'desc'. | [HttpPromise] |
| deleteCollection(array) | O método deleteCollection aceita um parâmetro array e retorna uma promise de uma série de chamadas http do tipo DELETE que serão resolvidas ao mesmo tempo. | [HttpPromise] |
| saveImage(attribute, data) | O método saveImage aceita dois parâmetros attribute e data e retorna uma promise de de uma chamada HTTP POST FORM-DATA. | [HttpPromise] |
| deleteImage(attribute, data) | O método deleteImage aceita dois parâmetros url e data e retorna uma promise de de uma chamada HTTP DELETE FORM-DATA. | [HttpPromise] |
| getSearch(field, param) | O método getSearch aceita dois parâmetros field e param e retorna uma promise de uma chamada HTTP do tipo GET. | [HttpPromise] |
| getAdvancedSearch(param) | O método getAdvancedSearch aceita um parâmetro param e retorna uma promise de uma chamada HTTP do tipo GET. | [HttpPromise] |
| redoSearch() | O método redoSearch é usado para resgatar o estado do último query. | [HttpPromise] |
| resetDefaultState() | O método resetDefaultState retorna o objeto de query ao seu estado padrão. | [HttpPromise] |
| saveQuery(query) | O método saveQuery aceita um parâmetro query e retorna uma promise de uma chamada HTTP do tipo POST. | [HttpPromise] |
| getQuery(page) | O método getQuery aceita um parâmetro page e retorna uma promise de uma chamada HTTP do tipo GET. Este Parâmetro page é o valor de retorno do objeto location.hash disponível através do browser. É necessário este atributo para pegar apenas as queries relacionadas a página. As informações do usuário já são passadas através do token. | [HttpPromise] |
| getSelectedTags(id) | O método getSelectedTags aceita um parâmetro id e retorna uma promise de uma chamada HTTP do tipo GET. Este Parâmetro id é o identificador da entidade que está sendo editada. Este atributo é necessário para buscar apenas as tags que estão ligadas aquele registro. | [HttpPromise] |
| getAvailableTags() | O método getSelectedTags não necessita de parâmetros e retorna uma promise de uma chamada HTTP do tipo GET. | [HttpPromise] |