Shyam Seshadri & Brad Green

Documentos relacionados
Introdução ao GitHub Peter Bell e Brent Beer

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec

Ryan Mitchell. Novatec

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Miguel Grinberg. Novatec

Novatec Editora Ltda

Benjamin Bengfort Jenny Kim

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Allen B. Downey. Novatec

Karl Matthias Sean P. Kane

Primeiros Passos com o Netduino

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

Shelley Powers. Novatec

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec

Allan Liska e Timothy Gallo. Novatec

Ademir C. Gabardo. Novatec

Indira Knight. Novatec

Primeiros Passos com o Arduino

Jody Culkin e Eric Hagan

Guia Prático Richard E. Silverman

Jarrod Overson e Jason Strimpel

Semmy Purewal. Novatec

Julia Elman e Mark Lavin. Novatec

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Matheus Marabesi Michael Douglas

André Gugliotti. Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec

Kenneth Reitz Tanya Schlusser

Aditya Y. Bhargava. Novatec

William Pereira Alves

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec

Desenvolvendo Websites com PHP

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

Aaron Newcomb. Novatec

Web Interativa com Ajax e PHP

Jonathan Weber e a equipe da LunaMetrics

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

Adrian Mouat. Novatec

Adriano Pataro. Novatec

Aravind Shenoy Anirudh Prabhu

Novatec Editora Ltda

Simon Holmes. Novatec

Novatec Editora Ltda. [2014].

Ademir Cristiano Gabardo. Novatec

Ben Vinegar Anton Kovalyov

Novatec Editora Ltda

A Arte de Escrever Programas Legíveis

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

Raspberry Pi Manual do Usuário

Guia Mangá Circuitos Eletrônicos

WordPress 3 Básico Stephanie Leary

Osvaldo Santana Thiago Galesi

4ª Edição Pablo Dall Oglio

Design Centrado no Usuário

Desenvolvimento de Grandes Aplicações Web

Introdução ao GitHub Peter Bell e Brent Beer

Daniel Marcos Cunha Pereira

Chris Binnie. Novatec

Criando Relatórios com PHP Pablo Dall Oglio

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Rodrigo de Barros Paes

Hélio Engholm Jr. Novatec

Primeiros Passos com o Arduino Massimo Banzi

Jessey Bullock Jeff T. Parker

Ademir Cristiano Gabardo. Novatec

Maurício Samy Silva. Novatec

Jonathan Stark Brian Jepson

Ademir Ribeiro dos Passos

Novatec Editora Ltda

Luiz Eduardo Borges. Novatec

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach

Edécio Fernando Iepsen

Pete Goodliffe. Novatec

3ª Edição Nilo Ney Coutinho Menezes

Guia Mangá Motores elétricos

Adrian Pruteanu. Novatec

Arduino Básico Michael McRoberts

Guia Mangá Circuitos Eletrônicos

John Paul Mueller. Novatec

2ª Edição Cláudio Torres

PDF Explicado John Whitington

Primeiros Passos com o Raspberry Pi

Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

Chris Goward. Novatec

Análise de Regressão

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec

Sérgio de Oliveira. Novatec

Blender 3D jogos e animações interativas Allan Brito

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

A Linguagem de Programação Go

Programando com ASP.NET MVC. Aprenda a desenvolver aplicações web utilizando a arquitetura MVC. Alfredo Lotar. Novatec

Guia Mangá FISIOLOGIA. Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec

Padrões de Projeto em PHP

Crie Seu Próprio Site

Robson Santos da Silva

Wolfram Donat. Novatec

Google Analytics Justin Cutroni

Transcrição:

Shyam Seshadri & Brad Green Novatec

Authorized Portuguese translation of the English edition of Angular JS: Up and Running, ISBN 9781491901946 2014 Shyam Seshadri and Brad Green. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Angular JS: Up and Running, ISBN 9781491901946 2014 Shyam Seshadri e Brad Green. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. Novatec Editora Ltda. 2014. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Lúcia A. Kinoshita Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila Ayumi Yoshimatsu ISBN: 978-85-7522-409-0 Histórico de impressões: Novembro/2014 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 Email: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec

Sumário Introdução...11 Capítulo 1 Introdução ao AngularJS...19 Introdução ao AngularJS... 20 O que é MVC (Modelo-Visão-Controlador)?... 20 Vantagens do AngularJS...21 A filosofia do AngularJS... 22 Começando a trabalhar com o AngularJS... 30 Que tipo de backend é necessário?...31 Minha aplicação como um todo deve ser uma aplicação AngularJS?...31 Uma aplicação AngularJS básica...31 Hello World com o AngularJS... 33 Conclusão... 34 Capítulo 2 Diretivas e controladores básicos do AngularJS...35 Módulos do AngularJS... 35 Criando o nosso primeiro controlador... 37 Trabalhando com arrays e exibindo-os... 44 Mais diretivas... 48 Trabalhando com ng-repeat... 50 ng-repeat em um objeto... 50 Variáveis auxiliares em ng-repeat...51 Monitorar por ID... 53 ng-repeat em vários elementos HTML... 56 Conclusão... 58 Capítulo 3 Testes de unidade no AngularJS...59 Testes de unidade: o que são e por que devem ser executados... 59 Introdução ao Karma... 62 Plugins do Karma... 63 Explicando a configuração do Karma... 64 Gerando a configuração do Karma... 67 5

6 Desenvolvendo com AngularJS Jasmine: estilo de especificação de testes... 67 Sintaxe do Jasmine... 68 Matchers úteis do Jasmine... 69 Escrevendo um teste de unidade para o nosso controlador...71 Executando o teste de unidade...74 Conclusão... 75 Capítulo 4 Formulários, dados de entrada e serviços...76 Trabalhando com ng-model... 76 Trabalhando com formulários... 79 Tirando proveito de data-binding e de modelos... 80 Validação de formulários e estados... 82 Tratamento de erros em formulários... 84 Exibindo mensagens de erro... 85 Estilizando formulários e estados... 87 Formulários aninhados com ng-form... 90 Outros controles de formulário... 93 Textareas... 93 Caixas de seleção... 93 Botões de rádio... 96 Combo boxes/listas suspensas... 97 Conclusão...100 Capítulo 5 Tudo sobre os serviços do AngularJS...101 Serviços do AngularJS... 101 Por que precisamos de serviços no AngularJS?...102 Serviços versus controladores...105 Injeção de dependência no AngularJS...106 Utilizando serviços prontos do AngularJS...107 Ordem da injeção... 110 Serviços comuns do AngularJS... 110 Criando nosso próprio serviço no AngularJS...111 Criando um serviço simples no AngularJS... 112 A diferença entre factory, serviço e provedor... 116 Conclusão... 121 Capítulo 6 Comunicação com servidores usando $http...122 Acessando dados com $http usando GET...122 Detalhando as promises...127 Propagando o sucesso e o erro...129 Serviço $q...130

Sumário 7 Fazendo solicitações POST com $http... 131 API $http...133 Configuração...134 $http avançado... 137 Configurando os defaults do $http... 137 Interceptadores...139 Melhores práticas...143 Conclusão... 145 Capítulo 7 Testes de unidade em serviços e em XHRs...146 Injeção de dependência em nossos testes de unidade...146 Estados entre testes de unidade...149 Simulando os serviços...150 Spies...153 Testes de unidade em chamadas ao servidor...155 Testes de unidade no nível de integração...159 Conclusão...162 Capítulo 8 Trabalhando com filtros...163 O que são filtros do AngularJS?...163 Usando filtros do AngularJS...164 Filtros comuns do AngularJS... 166 Usando filtros em controladores e em serviços... 174 Criando filtros no AngularJS... 175 O que devemos lembrar sobre os filtros...178 Conclusão...179 Capítulo 9 Testes de unidade em filtros...180 O filtro a ser testado...180 Testando o filtro timeago... 181 Conclusão...184 Capítulo 10 Roteamento usando ngroute...185 Roteamento em uma Single-Page Application...186 Usando ngroute...187 Opções de roteamento...190 Usando resolves para verificações prévias na rota...193 Usando o serviço $routeparams...195 Questões com as quais devemos tomar cuidado...197 Um exemplo completo de roteamento no AngularJS...198

8 Desenvolvendo com AngularJS Configurações adicionais... 210 Modo HTML5...211 SEO com o AngularJS... 214 Analytics com o AngularJS... 215 Alternativas: ui-router... 217 Conclusão... 219 Capítulo 11 Diretivas...220 O que são diretivas?... 220 Alternativas para diretivas personalizadas... 221 ng-include... 221 Limitações de ng-include...225 ng-switch...225 Entendendo as opções básicas... 228 Criando uma diretiva... 228 Template/URL de template... 229 restrict...232 A função link...234 Escopo...236 replace...249 Conclusão... 251 Capítulo 12 Testes de unidade em diretivas...252 Passos envolvidos nos testes de uma diretiva...252 A diretiva para o widget de ações...253 Configurando o teste de unidade de nossa diretiva...254 Outras considerações... 260 Conclusão... 261 Capítulo 13 Diretivas avançadas...262 Ciclos de vida no AngularJS...262 Ciclo de vida do AngularJS...262 Ciclo digest... 265 Ciclo de vida das diretivas...267 Transclusões... 268 Transclusão básica... 271 Transclusão avançada...273 Controladores de diretivas e require...278 Opções de require... 283 Diretivas de entrada com ng-model... 285 Validadores personalizados... 289 compile... 292

Sumário 9 Opções priority e terminal... 299 Integração com terceiros... 300 Melhores práticas... 306 Escopos... 306 Limpar e destruir...307 Watchers... 308 $apply (e $digest)... 309 Conclusão... 310 Capítulo 14 Testes fim a fim...311 Por que o Protractor é necessário... 312 Configuração inicial... 313 Configuração do Protractor... 313 Um teste fim a fim... 315 Considerações... 319 Conclusão...323 Capítulo 15 Diretrizes e melhores práticas...324 Testes...324 Desenvolvimento orientado a testes...325 Variedade de testes...325 Quando executar os testes...327 Estrutura do projeto...329 Melhores práticas...329 Estrutura de diretórios...330 Bibliotecas de terceiros...335 Ponto de partida...336 Build...337 Grunt...337 Disponibilizar um único arquivo JavaScript...338 Minificação...339 ng-templates... 340 Melhores práticas... 340 Práticas genéricas... 340 Serviços... 341 Controladores...342 Diretivas...343 Filtros... 344 Ferramentas e bibliotecas... 344 Batarang...345 WebStorm... 346 Módulos opcionais...347 Conclusão... 348