Angular-Js Compress
Angular-Js Compress
O que veremos?
➤O que é ?
➤ Arquitetura
➤ Módulos
➤ Controladores
➤ Fábricas
➤ Injeção de Dependências
➤ Serviços REST
➤ Utilizando $http
➤ Módulo ngResource
ANGULAR JS - O QUE É ?
➤ https://angularjs.org/
➤ Mantida (boa parte) pelo Google
➤ Desde 2009
➤ Facilita o desenvolvimento de aplicações de única página (SPA)
➤ Utilizado por:
➤ Wolfram Alpha;
➤ Portal NBC;
➤ Intel;
➤ pelo menos mais 8.400 sites.
FILOSOFIA
➤ Programação declarativa
➤ Interface do usuário
➤ Conexão
entre
componentes
➤ Programação imperativa
➤ Lógica de negócios
HÃ?!
PROGRAMAÇÃO DECLARATIVA
➤ “O que ao invés de como”
➤ Ex:
➤ Aqui começa a aplicação;
➤ Os produtos devem ser exibidos nesse local;
➤ Se esse botão for clicado chame essa função.
EXEMPLO
EXEMPLO
Carregamento do
Angular.js
EXEMPLO
Carregamento do script da
aplicação
EXEMPLO
Parte
“declarativa”
EXEMPLO
Parte
“declarativa”
! Atenção
aos
atributos
ng-xxx
EXEMPLO
Essa é a aplicação
“LojaOnline”
EXEMPLO
Controller
Model
View
ARQUITETURA MVC
Inicialização:
O controller prepara os dados que
serão exibidos assim que a página for
exibida.
Controller
1
Model
View
ARQUITETURA MVC
Controller
2
Model
Model
View
ARQUITETURA MVC
Controller
Model
4
Os dados prontos são enviados para View
a view que os formata e exibe
EXEMPLO DE
CONTROLADOR
APP.JS
Criando um array de
produtos disponíveis para
a página
COMO TUDO SE CONECTA
index.html
app.j
index.html
app.j
index.html
app.j
index.html
app.j
index.html
app.j
index.html
app.j
index.html
app.j
RESULTADO
PRINCIPAIS
CONCEITOS
PRINCIPAIS CONCEITOS
➤ Diretivas
➤ Expressões
➤ Módulos
➤ Controladores
➤ Two way data binding
➤ Fábricas
➤ Injeção de Dependências
DIRETIVAS
➤ Atributos ng-xxx;
➤ Ex:
➤ ng-app, ng-controller, ng-repeat, ng-click;
➤ Programação declarativa;
➤ Ligam a camada de apresentação (view) com os controladores;
EXPRESSÕES
➤ {{ código JavaScript }}
➤O código é avaliado e seu resultado é exibido;
➤ Acessa os dados definidos no $scope (model) do controlador ativo;
➤ Ex:
➤ {{ 2 + 2 }}
➤ <h1> Há {{ produtos.length }} produtos cadastrados </h1>
MÓDULOS
➤ Uma aplicação Angular é dividida em módulos;
➤ Cada módulo pode conter controladores e fábricas de componentes;
➤ Um módulo pode depender de outros;
➤ Criação de um módulo:
➤ var modulo = angular.module(“nome do módulo”, [dependências]);
➤ Ex:
➤ var dados = angular.module(“Dados”, [ ]);
➤ var financeiro = angular.module(“Financeiro”, [“Dados”]);
MÓDULOS
➤ Uma aplicação Angular é dividida em módulos;
➤ Cada módulo pode conter controladores e fábricas de componentes;
➤ Um módulo pode depender de outros;
➤ Criação de um módulo:
➤ var modulo = angular.module(“nome do módulo”, [dependências]);
➤ Ex:
➤ var dados = angular.module(“Dados”, [ ]);
➤ var financeiro = angular.module(“Financeiro”, [“Dados”]);
➤Exemplo:
app.factory('Calculadora',
function( ) {
return {
soma: function(a,
b) { return a + b; }
};
});
INJEÇÃO DE DEPENDÊNCIAS
➤ História
➤ Verbos
➤ Exemplos
REST OU RESTFUL WEB SERVICES
➤ Representational State Transfer;
➤ Forma de disponibilizar serviços na web utilizando as ações do protocolo HTTP
(verbos):
➤ GET / PUT / POST / DELETE;
➤ Padrão mais utilizado para a troca de informações entre aplicações;
➤ Os dados normalmente são trocados no formado JSON ou XML;
➤ Exemplo - Requisição GET para buscar o endereço de um CEP no formato
JSON:
➤ http://cep.correiocontrol.com.br/58402000.json
➤ Retorno:
ANGULAR.JS – UTILIZANDO UM SERVIÇO REST
➤ Para o consumo e envio rápidos de dados, pode-se utilizar o módulo $http;
➤ Requisição GET:
➤ $http.get(url).then(funcao_sucesso, funcao_erro);
➤ Requisição POST:
➤ $http.post(url).then(funcao_sucesso, funcao_erro);
EXEMPLO $HTTP - INDEX.HTML
EXEMPLO $HTTP - INDEX.HTML
Utilizaremos o componente
$http
EXEMPLO $HTTP - APP.JS
➤ query(parâmetros de busca);
➤ Obter um registro:
➤ get(identificador do registro);
➤ Salvar registro:
➤ $save( );
➤ Atualizar registro:
➤ Remover registro:
➤ delete(identificador)
CONCLUSÕES
➤ Há vários plugins:
➤ http://ngmodules.org/
➤ https://angular-ui.github.io/
➤É possível desenvolver aplicações para dispositivos portáteis:
➤ Ionic Framework - http://ionicframework.com/