Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Workshop Introdução a AngularJS

Opensanca
September 17, 2015

Workshop Introdução a AngularJS

Esse workshop foi ministrado pelo Guilherme Cabrini fornecendo uma base para quem está querendo iniciar seus estudos usando o framework mais popular da Google o AngularJS.

O workshop evidenciou sobre diretivas: ng-app, ng-init, ng-bind, bg-repeat, ng-if, ng-include, ng-class, controller, model e view.

Opensanca

September 17, 2015
Tweet

More Decks by Opensanca

Other Decks in Programming

Transcript

  1. O que iremos ver - Configuração ambiente - O que

    é? - Hello Angular - Diretivas - MVC - $scope e $rootScope - $digest, $watch e $apply - $providers - $http - $q
  2. Configuração ambiente - Instalar Git sudo apt-get install git git-gui

    gitk https://git-scm.com/download/win (windows) http://192.168.10.109:8080/ - Clonar o repositório git clone https://github.com/gcabrini/workshop-angular.git
  3. Configuração ambiente - Instalar Nodejs sudo apt-get install nodejs -

    Fazer link simbolico para node sudo ln -s /usr/bin/nodejs /usr/bin/node - Instalar nodemon sudo npm install -g nodemon - Testar comando node
  4. Configuração ambiente - Instalar Bower sudo npm install -g bower

    - Instalar Gulp sudo npm install -g gulp - Instalar http-server sudo npm install -g http-server
  5. Configuração ambiente - Editor de texto a sua escolha -

    Browser a sua escolha - que não seja o IE, nada pessoal =/
  6. O que é - “AngularJS é um framework JavaScript open-source,

    mantido pelo Google, que auxilia na execução de single-page applications. Seu objetivo é aumentar aplicativos que podem ser acessados por um navegador web, sob o padrão model–view–controller (MVC), em um esforço para facilitar tanto o desenvolvimento quanto o teste dos aplicativos. - A biblioteca lê o HTML que contém tags especiais e então executa a diretiva na qual esta tag pertence, e faz a ligação entre a apresentação e seu modelo, representado por variáveis JavaScript comuns. O valor dessas variáveis JavaScript podem ser setadas manualmente, ou via um recurso JSON estático ou dinâmico.” Wikipedia
  7. O que é - MVC - Abstrair a manipulação do

    DOM (diretivas) - Facilitar testes - Two way Data-binding - Injeção de dependências - IE9 + (angular v1.3+) - Curva de aprendizado + vocabulário
  8. Hello Angular Referência boas práticas: https://github.com/johnpapa/angular-styleguide - Criar estrutura de

    pastas - Instalar dependências bower - Criar index.html - Executar http-server no diretório raiz: http-server . -c-1
  9. Diretivas - São extensões da linguagem HTML que permitem a

    implementancão de comportamentos de forma declarativa - Exemplos: ng-app, ng-init, ng-click, ng-model, etc...
  10. Diretivas - ng-bind Responsável por substituir seu conteúdo por uma

    expressão e atualiza-la quando necessário
  11. Diretivas - ng-cloak Responsável por esconder html que não esteja

    compilado pelo angular // css [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { display: none !important; }
  12. - Models - são propriedades do $scope, $scopes são anexados

    ao DOM onde suas propriedades são acessadas através dos bindings - Views - são os templates de nossa aplicação que contem as diretivas - Controllers - são as nossas “classes”, responsáveis por conter regras de negócios e manipulação do $scope (funções e valores de models) MVC
  13. MVC

  14. - ng-model Responsável por “ligar” a view com a lógica

    de um ng-controller - Permite validações: required, email, number, url - Controle de classes css: valid/invalid, dirty/pristine e erros de validações - Registra um controle de validação no <form> pai do elemento MVC
  15. - ng-model Classes css: - ng-valid e ng-invalid: model é

    válido ou não. - ng-valid-[key] e ng-invalid-[key]: adicionada para cada validação. Exemplo: para validação ng-required serão adicionadas as classes ng- valid-required e ng-invalid-required. - ng-pristine e ng-dirty: se o valor do model foi alterado ou não. - ng-touched e ng-untouched: se o model foi “tocado” (focus, blur). MVC
  16. - filter Responsável por formatar o valor de uma expressão

    na view. Podem ser usados em templates de view, controllers ou services Filter
  17. - $scope Um objeto simples de comunicação Representa a área

    de acesso de um determinado controller $scope e $rootScope
  18. - $digest Responsável por “automagicar” a nossa página - O

    ciclo de $digest é iniciado toda vez que há alteração em um model - Controla todos os $watchers do scope - Todos os watchers são executados a cada ciclo de $digest $digest
  19. - $watcher Responsável por disponibilizar um callback a cada alteração

    do model - É disparado no ciclo do $digest - Quando o watcher é disparado pelo $digest, ele verifica se o valor do model no scope é diferente e caso seja, dispara o seu callback $watcher
  20. - $apply Responsável por executar o $digest - O angular

    exibe na view o conteúdo dos models assim que são alterados - Sua chamada é necessária caso a alteração em um model seja feita fora do contexto do angular. Exemplo: setTimeout, setInterval e dentro de uma diretiva criada - O Angular pode detectar suas alterações no model, caso não, use o apply $apply
  21. - ng-include Responsável por buscar, compilar e incluir um html

    externo por meio de uma requisição $http Diretivas
  22. Diretivas No angular é possível criar diretivas customizadas Atributos principais:

    - template e templateUrl: html que será exibido na diretiva - restrict: A (atributo), E (elemento) e C (classe) - link: função para manipular DOM
  23. - $provide É um serviço que contêm funções que registram

    componentes para o $injector - Muitas dessas funções são expostas ao “angular.module” - Funções: provider, constant, value, factory e service $providers
  24. - Providers Factory: será recuperado apenas o que está no

    “return”. Service: será recuperado uma instância da função (função construtora). Provider: será recuperado apenas o que está no método $get. Constant: será recuperado o valor, que não deve ser alterado e não é interceptada pelo decorator. Value: será recuperado o valor e pode ser alterado. Decorator: pode modificar ou encapsular outros providers. $providers
  25. - $http Serviço responsável por realizar requisições AJAX - $http.get

    - $http.head - $http.post - $http.put - $http.delete - $http.jsonp - $http.patch $http
  26. $q - $q - Serviço para realizar execução de funções

    assíncronas Métodos: - resolve - reject - notify
  27. $q

  28. - $injector Utilizado para obter uma instância de um objeto

    definido pelo $provide, instanciar tipos, invocar metodos e carregar modulos $injector
  29. - ngMessages Diretiva para exibir e esconder uma determinada mensagem

    de validação - Dependência ngMessages ngMessages
  30. - $element Responsável por manipular elementos do DOM - É

    um alias para o jQuery (caso esteja incluido) - jqLite - semelhante ao jQuery - Utilizar apenas se não existir outra solução $element
  31. - $element Algumas funções: - addClass, hasClass, removeClass - attr,

    removeAttr - append, prepend - parent, children - html, text - find, eq - css $element
  32. - Angular 2 - Performace 3x - 5x mais rápido

    - Sintaxe ES6 - Template precompilado e reuso - View caching Angular 2