Introdução
@gilsondev
Gilson Filho
Carregamento no
estilo anos 90
Servidor Web
Navegador
Requisição via URL
Retorno de página e Assets
Clique no link, outra requisição
Retorno de página e Assets
Página completa
Página completa
Servidor Web
Navegador
Requisição via URL
Retorno de página e Assets
Clique no link, outra requisição
Retorno de dados em JSON
Página completa
Dados
{ }
Página completa
Dados
{ }
Dados são preenchidos em uma página já carregada.
Dados
API
Servidor
Aplicativos móveis
Aplicativos web
Desenvolvedores
xyzlast (tá em koreano, boa sorte!)
Atualiza template de acordo com mudanças após o # da URL.
Atualiza e cria HTML baseando-se em templates e models.
Sincroniza o model e a interface do usuário.
$.ajax({
url: '/myEndpoint.json',
success: function ( data, status ) {
$('ul#log').append('<li>Data Received!</li>');
}
});
<ul class="messages" id="log">
</ul>
<ul class="messages">
<li ng-repeat="entry in log">{{ entry.msg }}</li>
</ul>
$http( '/myEndpoint.json' ).then( function (response) {
$scope.log.push( { msg: 'Data Received!' } );
});
<ul class="messages">
<li ng-repeat="entry in log">{{ entry.msg }}</li>
</ul>
<ul class="messages">
<li ng-repeat="entry in log">{{ entry.msg }}</li>
</ul>
<!DOCTYPE html>
<html ng-app>
...
</html>
<!DOCTYPE html>
<html ng-app="minhaApp">
...
</html>
var app = angular.module('store', [ ]);
var app = angular.module('store', [ ]);
AngularJS
Nome da Aplicação
Dependências
<!DOCTYPE html>
<html lang="pt-br" ng-app="protocolosApp">
<head>
<meta charset="UTF-8">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.16/angular.min.js"></script>
<script src="js/app.js"></script>
</head>
<body>
</body>
</html>
'use strict';
var protocolosApp = angular.module('protocolosApp', []);
index.html
js/app.js
<!DOCTYPE html>
<html lang="pt-br" ng-app="protocolosApp">
<head>
<meta charset="UTF-8">
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.16/angular.min.js"></script>
<script src="js/app.js"></script>
</head>
<body ng-controller="EmpresaCtrl">
</body>
</html>
'use strict';
var protocolosApp = angular.module('protocolosApp', []);
protocolosApp.controller('EmpresaCtrl', function($scope) {
// ...
});
index.html
js/app.js
'use strict';
var protocolosApp = angular.module('protocolosApp', []);
protocolosApp.controller('EmpresaCtrl', function($scope) {
$scope.nome = 'Joston Muriel';
});
...
<body ng-controller="EmpresaCtrl">
<p>{{nome}}</p>
</body>
...
index.html
...
<body ng-controller="EmpresaCtrl">
<p>Joston Muriel</p>
</body>
...
Renderizará...
(não é perfumaria!)
<ng-pluralize count="personCount" offset=2
when="{'0': 'Ninguém está vendo.',
'1': '{{person1}} está vendo.',
'2': '{{person1}} e {{person2}} estão viewing.',
'one': '{{person1}}, {{person2}} e outra pessoa estão vendo.',
'other': '{{person1}}, {{person2}} e outras {} pessoas estão vendo.'}">
</ng-pluralize>
4 pessoa(s) está(ão) vendo.
Thiago, Rebecca e outras 2 pessoas estão vendo.
Comum
Com personalização de texto pluralizado
ngPluralize
Scaffolding com Yeoman.io
Automação de processos com Grunt.js ou Gulp.js
SEO x AngularJS (atualmente, procure por pushState)
Organize as dependências entre modulos
Organize as dependências de pacotes
GUI Architectures (2006, Martin Fowler)
Trabalho, meu filho!