barbara-js v1.4.0
Barbara-JS
Um framework para o AngularJS com novos serviços, diretivas e filtros.
Como usar
Primeiro, instale o barbara-js com o Bower ou NPM:
bower install barbara-js --save
npm install barbara-js --saveEm seguida, referenciar o script minificado:
<!--Bower-->
<script src="./bower_components/angular-sanitize/angular-sanitize.min.js"></script>
<script src="./bower_components/barbara-js/barbarajs.min.js"></script>
<!--NPM-->
<script src="./node_modules/angular-sanitize/angular-sanitize.min.js"></script>
<script src="./node_modules/barbara-js/barbarajs.min.js"></script>Especifique o BarbaraJS como uma dependência do seu aplicativo:
var app = angular.module('ExemploApp', ['Barbara-Js']);Agora é só injetar os recursos do BarbaraJS em seu controller, service ou directive quando você precisar dele. Exemplo:
app.controller('ExemploController', function($scope, $request) {
$scope.getPopularPhotosInstagram = function(){
var apiUrl = 'https://demo9691796.mockable.io/getPopularPhotosInstagram';
var params = {
access_token : 1160235423409901109,
count : 5,
max_tag_id : 1160235423409901109
};
$request.get(apiUrl)
.addData(params)
.send(callbackSuccess, callbackError);
};
$scope.getPopularPhotosInstagram();
var callbackSuccess = function(data, meta, response){
console.log(data);
console.log('ocorreu tudo certo!');
};
var callbackError = function(meta, code, response){
console.log(meta.error_message);
};
});$request Service
O $request service trabalha sobre $http do AngularJS para dar mais poder ao realizar uma requisição http. Com ele, é possível realizar uma requisição de forma mais dinâmica ao repassar os dados, também existe a possibilidade de executar callbacks nos eventos 'antes de enviar a requisição' e 'após receber a resposta'. Há outros recursos interessantes que você pode conferir abaixo:
$request.get(url): Criar um objeto $request GET.Parâmetro Tipo Descrição urlstringURL relativo ou absoluto do destino da requisiçãoRetorna um novo objeto $request com method configurado para GET$request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .send(function(){ console.log('Success!'); }, function(){ console.log('Error!'); });$request.post(url): Criar um objeto $request POST.Parâmetro Tipo Descrição urlstringURL relativo ou absoluto do destino da requisiçãoRetorna um novo objeto $request com method configurado para POST$request.post('http://localhost/moca_bonita/') .addData({ todo : 'pessoa', action : 'create', data : { nome : 'Fulano', sobrenome : 'De Tal', email : 'fulandodetal@mocabonita.com' } }) .send(function(){ console.log('Success!'); }, function(){ console.log('Error!'); });$request.put(url): Criar um objeto $request PUT.Parâmetro Tipo Descrição urlstringURL relativo ou absoluto do destino da requisiçãoRetorna um novo objeto $request com method configurado para PUT$request.put('http://localhost/moca_bonita/') .addData({ todo : 'pessoa', action : 'update', data : { id : 1, nome : 'Beltrano', sobrenome : 'De Tal', email : 'fulandodetal@mocabonita.com' } }) .send(function(){ console.log('Success!'); }, function(){ console.log('Error!'); });$request.delete(url): Criar um objeto $request DELETE.Parâmetro Tipo Descrição urlstringURL relativo ou absoluto do destino da requisiçãoRetorna um novo objeto $request com method configurado para DELETE$request.delete('http://localhost/moca_bonita/') .addData({ todo : 'pessoa', action : 'delete', data : { id : 1 } }) .send(function(){ console.log('Success!'); }, function(){ console.log('Error!'); });$request.addData(data): Adiciona dados no corpo da requisição, exceto quando o method forGET, onde ele converte os dados em parametros da url.Parâmetro Tipo Descrição dataobjectDados em JSON para enviar ao url definidoRetorna o objeto $request com os dados da requisição armazenado$request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) //O URL final será http://localhost/moca_bonita/?page=pessoa&action=read pois o method da requisição é GET. .send(success, error); $request.post('http://localhost/moca_bonita/') .addData({ todo : 'pessoa', action : 'create', data : { nome : 'Fulano', sobrenome : 'De Tal', email : 'fulandodetal@mocabonita.com' } }) //Neste caso, o URL permanecerá http://localhost/moca_bonita/ pois os dados estão no corpo da mensagem em json. .send(success, error);$request.checkResponse(check): Alterar a verificação de estrutura do response.data, por padrão a verificação é habilitada. (opicional)Parâmetro Tipo Descrição checkbooleanValor booleano para habilitar ou desabilitar a verificação da estrutura do response.dataEstrutura response.data recomendada
{ "meta": { //Obrigatório "code": 400, //Obrigatório "error_message": "400 - BAD REQUEST" //Obrigatório quando o meta.code não estiver entre 200 a 299 }, "data":[] //Obrigatório quando o meta.code estiver entre 200 a 299 }Retorna o objeto $request configurado para verificar ou não o response.data .$request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .checkResponse(false) .send(function(response){ console.log('Response completo sem verificação!'); });$request.addMethod(method): Alterar o method da requisição do objeto $request. (opicional)Parâmetro Tipo Descrição methodstringNome do method da requisição. Ex: (GET, POST, PUT, DELETE, OPTIONS)Retorna o objeto $request com o novo method registrado$request.addMethod('GET');$request.addHeaders(headers): Adicionar cabeçalho adicional ao $request. (opicional)Parâmetro Tipo Descrição headersobjectCabeçalho em JSON para ser acrescentado ao cabeçalho da requisiçãoRetorna o objeto $request com o novo cabeçalho registrado$request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .addHeaders({ Authorization : 'bW/Dp2EgYm9uaXRh', Accept : 'application/json' }) .send(success, error);$request.load(onLoading, [loaded]): Adicionar callbacks para executar antes da requisição e após receber o response. (opicional)Parâmetro Tipo Descrição onLoadingfunction | object bootstrap.loadingCallback para executar antes da requisição ser executada. Objeto da diretiva loading-bootstrap para tratar o carregamento dinâmicoloadedfunctionCallback para executar após receber o responseRetorna o objeto $request com os callbacks armazenado$request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .load(function(){ console.log('Carregando os dados...'); }, function(){ console.log('Os dados foram carregados!'); }) .send(success, error); $request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) //Precisa definir o bootstrap service e adicionar a diretiva loading-bootstrap na view .load(bootstrap.loading().getRequestLoad('Carregando informações..')) .send(success, error);$request.addCallback(metaCode, callback): Adicionar callbacks adicionais para executar quando o meta.code do response.data for igual ao definido. (opicional)(pode ser executado diversas vezes)Parâmetro Tipo Descrição metaCodenumberCódigo para comparação com o meta.codecallbackfunctionCallback para executar quando o meta.code for igual ao metaCode definido. Os parametros do callback são (data, meta, response)Retorna o objeto $request com os callbacks de meta.code armazenado$request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .addCallback(401, function(data, meta, response){ console.log('Request unauthorized!'); }) .addCallback(405, function(data, meta, response){ console.log('Method not allowed!'); }) .send(success, error);$request.send(success, [error]): Fazer a requisição para o url definido.Parâmetro Tipo Descrição successfunctionCallback que será executado caso o meta.code estiver entre 200 a 299. Caso a verificação de estrutura do response.data esteja desabilitado, este callback é executado quando o response.status estiver entre 200 a 299. Os parametros do success são (data, meta, response).errorfunctionCallback que será executado caso o meta.code ou response.status não estiver entre 200 a 299. Caso a estrutura do response.data for diferente da recomendada, este callback é executado. Os parametros do error são (meta, status, response)Sem retornovar callbackSuccess = function(data, meta, response){ console.log(data); }; var callbackError = function(meta, status, response){ console.log(meta); }; $request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .send(callbackSuccess, callbackError);$request.urlEncoded(): Fazer a requisição com dados x-www-form-urlencoded.var callbackSuccess = function(data, meta, response){ console.log(data); }; var callbackError = function(meta, status, response){ console.log(meta); }; $request.post('http://localhost/moca_bonita/') .urlEncoded() .addData({ page : 'pessoa', action : 'read' }) .send(callbackSuccess, callbackError);
bootstrap Service
O bootstrap service traz os atributos e métodos das diretivas do barbaraJs. Deve ser injetado no controller ou service sempre que existir a necessidade de usar uma diretiva inclusa no barbaraJS:
bootstrap.alert
O bootstrap.alert trabalha com a diretiva alert-bootstrap do BarbaraJS, o alert é um componente do bootstrap que traz mensagens de forma mais elegante à página. O bootstrap.alert precisa está incluso dentro do scope, como atributo alert. ex: $scope.alert ou $rootScope.alert.
É necessário adicionar a diretiva na view:
<div alert-bootstrap></div>alert.changeShow([show]): Alterar a visibilidade da diretivaParâmetro Tipo Descrição showbooleanValor booleano para mostrar ou não mostrar a diretiva na view. Caso show não for definido, a visibilidade será o oposto da atual.Sem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.alert = bootstrap.alert(); $scope.alert.changeType('success'); $scope.alert.changeTitle('Parabéns!'); $scope.alert.changeMessage('Ocorreu tudo certo.'); $scope.alert.changeShow(true); $scope.toggleAlert = function(){ $scope.alert.changeShow(); }; $scope.dismissAlert = function(){ $scope.alert.changeShow(false); }; });alert.changeType(type): Alterar o tipo da diretivaParâmetro Tipo Descrição typestringValores válidos para o type "success", "info", "warning", "danger". O valor precisa ser atender os requisitos do Bootstrap Alert. Mais:http://getbootstrap.com/components/#alertsSem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.alert = bootstrap.alert(); $scope.alert.changeType('success'); $scope.alert.changeTitle('Parabéns!'); $scope.alert.changeMessage('Ocorreu tudo certo.'); $scope.alert.changeShow(true); $scope.infoAlert = function(){ $scope.alert.changeType('info'); }; $scope.dangerAlert = function(){ $scope.alert.changeType('danger'); }; });alert.changeTitle(title): Alterar o titulo da diretivaParâmetro Tipo Descrição titlestringTexto de titulo do alertSem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.alert = bootstrap.alert(); $scope.alert.changeType('success'); $scope.alert.changeTitle('Parabéns!'); $scope.alert.changeMessage('Ocorreu tudo certo.'); $scope.alert.changeShow(true); });alert.changeMessage(message): Alterar a mensagem da diretivaParâmetro Tipo Descrição messagestringTexto de mensagem do alert do alertSem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.alert = bootstrap.alert(); $scope.alert.changeType('success'); $scope.alert.changeTitle('Parabéns!'); $scope.alert.changeMessage('Ocorreu tudo certo.'); $scope.alert.changeShow(true); });alert.responseSuccess(message): Ajustar a diretiva para type = 'success', title='Parabéns!' e show = true. Recomendado para usar no callback de sucesso do$requestParâmetro Tipo Descrição messagestringTexto de mensagem do alert do alertSem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.alert = bootstrap.alert(); //$scope.alert.changeType('success'); //$scope.alert.changeTitle('Parabéns!'); //$scope.alert.changeMessage('Ocorreu tudo certo.'); //$scope.alert.changeShow(true); $scope.alert.responseSuccess('Ocorreu tudo certo.'); //Esta linha é equivalente às 4 linhas comentadas acima. });alert.responseError(meta): Ajustar a diretiva para trabalhar com o meta do response. Recomendado para usar no callback de erro do$requestParâmetro Tipo Descrição metaobjectObjeto meta recebido pelo $request no callback de erroSem retorno.app.controller('AppController', function($scope, bootstrap, $request) { $scope.alert = bootstrap.alert(); var callbackSuccess = function(data, meta, response){ $scope.alert.responseSuccess('Ocorreu tudo certo.'); }; var callbackError = function(meta, status, response){ $scope.alert.responseError(meta); }; $request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .send(callbackSuccess, callbackError); });
bootstrap.loading
O bootstrap.loading trabalha com a diretiva loading-bootstrap do BarbaraJS, o loading é um componente do bootstrap que traz uma barra de progresso de forma mais elegante à página. O bootstrap.loading precisa está incluso dentro do scope, como atributo loading. ex: $scope.loading ou $rootScope.loading.
É necessário adicionar a diretiva na view:
<div loading-bootstrap></div>loading.changeShow([show]): Alterar a visibilidade da diretivaParâmetro Tipo Descrição showbooleanValor booleano para mostrar ou não mostrar a diretiva na view. Caso show não for definido, a visibilidade será o oposto da atual.Sem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.loading = bootstrap.loading(); $scope.loading.changeShow(true); });loading.changeMessage(message): Alterar a mensagem da diretivaParâmetro Tipo Descrição messagestringTexto de mensagem do loadingSem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.loading = bootstrap.loading(); $scope.loading.changeMessage('Ocorreu tudo certo.'); $scope.loading.changeShow(true); });loading.onLoading(message): Alterar a visibilidade da diretiva para true e mostra a mensagem do loading.Parâmetro Tipo Descrição messagestringTexto de mensagem do loadingSem retorno.app.controller('AppController', function($scope, bootstrap) { $scope.loading = bootstrap.loading(); $scope.loading.onLoading('Carregando dados...'); });alert.loading(): Esconder barra de carregamentoapp.controller('AppController', function($scope, bootstrap, $request) {
$scope.loading = bootstrap.loading();
$scope.loading.onLoading('Carregando dados...');
$scope.loading.loaded();
});
```loading.getRequestLoad(message): Obter loading para o $request do barbara js.Parâmetro Tipo Descrição messagestringTexto de mensagem do loadingSem retorno.app.controller('AppController', function($scope, $request) { $scope.alert = bootstrap.alert(); $scope.loading = bootstrap.loading(); var callbackSuccess = function(data, meta, response){ $scope.alert.responseSuccess('Ocorreu tudo certo.'); }; var callbackError = function(meta, status, response){ $scope.alert.responseError(meta); }; $request.get('http://localhost/moca_bonita/') .addData({ page : 'pessoa', action : 'read' }) .load($scope.loading.getRequestLoad('Carregando os dados...')) .send(callbackSuccess, callbackError); });
8 years ago