56
carregando...

Angular JS, você precisa conhecer

Embed Size (px)

DESCRIPTION

A construção de interfaces ricas na web podem ser menos traumáticas, essa é a premissa básica desse framework. Nessa palestra faleremos sobre a introdução ao uso do Angular JS e o seu funcionamento, explicando as abstrações e magias que tornam o framework mais produtivo.

Citation preview

Page 1: Angular JS, você precisa conhecer

carregando...

Page 2: Angular JS, você precisa conhecer

levante a mão!

Page 3: Angular JS, você precisa conhecer

<angular-js ng-talk="meet2brains"/>

Page 4: Angular JS, você precisa conhecer
Page 5: Angular JS, você precisa conhecer

<html>

<input><a>

<strong>

<textarea>

<br> <em>

<span>

<form>

<div>

<title>

<table>

<legend>

<select>

<option>

<button>

<tr>

<td>

<script>

<ul>

HTML

Page 6: Angular JS, você precisa conhecer

<video>

<input><a>

<strong>

<textarea>

<br> <em>

<span>

<form>

<div>

<title>

<table>

<legend>

<select>

<option>

<button>

<tr>

<td>

<script>

<ul>

<html>

<canvas>

<audio>

<section>

<menu><hgroup>

<meter>

<progress>

<header>

Page 7: Angular JS, você precisa conhecer

<video>

<input><a>

<strong>

<textarea>

<br> <em>

<span>

<form>

<div>

<title>

<table>

<legend>

<select>

<option>

<button>

<tr>

<td>

<script>

<ul>

<html>

<canvas>

<audio>

<section>

<menu><hgroup>

<meter>

<progress>

<header>

<ng-view> <ng-switch>

<minha-tag> ng-model=""

Page 8: Angular JS, você precisa conhecer

Olá, platéia!

<body ng-app>

<input ng-model="nome">

<p>Olá, {{nome}}!</p>

<script href="angular.js"/>

</body>

platéia

Page 9: Angular JS, você precisa conhecer

<body ng-app>

<input ng-model="nome">

<p>Olá, {{nome}}!</p>

<script href="angular.js"/>

</body>

Page 10: Angular JS, você precisa conhecer

<body ng-app>

<input ng-model="nome">

<p>Olá, {{nome}}!</p>

<script href="angular.js"/>

</body>

Page 11: Angular JS, você precisa conhecer

<body ng-app>

<input ng-model="nome">

<p>Olá, {{nome}}!</p>

<script href="angular.js"/>

</body>

Page 12: Angular JS, você precisa conhecer

mas... e o CONTROLLER?

Page 13: Angular JS, você precisa conhecer

function SorteadorController($scope) {

$scope.numero = 0;

$scope.sortearNumero = function () {$scope.numero =

Math.floor(Math.random() * 100);};

}

sorteador-controller.js

Page 14: Angular JS, você precisa conhecer

<body ng-app>

<div ng-controller="SorteadorController">

<button ng-click="sortearNumero()">fazer sorteio!

</button>

<p>O número sorteado foi: {{numero}}</p>

</div>

<script href="angular.js"/><script href="sorteador-controller.js"/>

</body>

Page 15: Angular JS, você precisa conhecer

<body ng-app>

<div ng-controller="SorteadorController">

<button ng-click="sortearNumero()">fazer sorteio!

</button>

<p>O número sorteado foi: {{numero}}</p>

</div>

<script href="angular.js"/><script href="sorteador-controller.js"/>

</body>

Page 16: Angular JS, você precisa conhecer

<body ng-app>

<div ng-controller="SorteadorController">

<button ng-click="sortearNumero()">fazer sorteio!

</button>

<p>O número sorteado foi: {{numero}}</p>

</div>

<script href="angular.js"/><script href="sorteador-controller.js"/>

</body>

Page 17: Angular JS, você precisa conhecer

<body ng-app>

<div ng-controller="SorteadorController">

<button ng-click="sortearNumero()">fazer sorteio!

</button>

<p>O número sorteado foi: {{numero}}</p>

</div>

<script href="angular.js"/><script href="sorteador-controller.js"/>

</body>

Page 18: Angular JS, você precisa conhecer

MVC

Page 19: Angular JS, você precisa conhecer

MVC$scope.model = {id: 1,nome: 'Farfinhos',idade: 18

};

Page 20: Angular JS, você precisa conhecer

MVC<ul>

<li ng-repeat="usuario in usuarios">{{usuario.id}} - {{usuario.nome}}

</li>

</ul>

Page 21: Angular JS, você precisa conhecer

MVCfunction Controller($scope) {

$scope.model = { ... };

$scope.handlerClick = function () { ... };

}

Page 22: Angular JS, você precisa conhecer

APP

Page 23: Angular JS, você precisa conhecer

ControllerAPP

Page 24: Angular JS, você precisa conhecer

APP Controller

Serviço

Page 25: Angular JS, você precisa conhecer

APP Controller

Serviço

<view>

Page 26: Angular JS, você precisa conhecer

APP Controller

Serviço

<view>

filters

Page 27: Angular JS, você precisa conhecer

Como usar isso tudo para montar uma aplicação single-page?

Page 28: Angular JS, você precisa conhecer

cria-se uma aplicação...

Page 29: Angular JS, você precisa conhecer

window.appTalk = angular.module('appTalk', []);

Page 30: Angular JS, você precisa conhecer

window.appTalk = angular.module('appTalk', []);

<div ng-app="appTalk">...

</div>

Page 31: Angular JS, você precisa conhecer

cria-se controllers...

Page 32: Angular JS, você precisa conhecer

window.appTalk.controller('SobreController', [

'$scope',function ($scope){

... código do controller ...

}]);

Page 33: Angular JS, você precisa conhecer

cria-se serviços...

Page 34: Angular JS, você precisa conhecer

window.appTalk.service('ServicoNecessario',

function (){

this.funcionalidade = function () {...};

... código do serviço ...

});

Page 35: Angular JS, você precisa conhecer

cria-se templates...

Page 36: Angular JS, você precisa conhecer

<div>Detalhes sobre {{nome}}: <br>{{info}}

</div>

Page 37: Angular JS, você precisa conhecer

configura-se as rotas...

Page 38: Angular JS, você precisa conhecer

window.appTalk = angular.module('appTalk', []).config(['$routeProvider',

function ($routeProvider) {$routeProvider.when('/sobre', {

templateUrl: 'sobre.html',controller: 'SobreController'

}).when('/home', {

templateUrl: 'home.html',controller: 'HomeController'

}).otherwise({redirectTo: '/home});

}]);

Page 39: Angular JS, você precisa conhecer

window.appTalk = angular.module('appTalk', []).config(['$routeProvider',

function ($routeProvider) {$routeProvider.when('/sobre', {

templateUrl: 'sobre.html',controller: 'SobreController'

}).when('/home', {

templateUrl: 'home.html',controller: 'HomeController'

}).otherwise({redirectTo: '/home});

}]);

Page 40: Angular JS, você precisa conhecer

window.appTalk = angular.module('appTalk', []).config(['$routeProvider',

function ($routeProvider) {$routeProvider.when('/sobre', {

templateUrl: 'sobre.html',controller: 'SobreController'

}).when('/home', {

templateUrl: 'home.html',controller: 'HomeController'

}).otherwise({redirectTo: '/home});

}]);

Page 41: Angular JS, você precisa conhecer

window.appTalk = angular.module('appTalk', []).config(['$routeProvider',

function ($routeProvider) {$routeProvider.when('/sobre', {

templateUrl: 'sobre.html',controller: 'SobreController'

}).when('/home', {

templateUrl: 'home.html',controller: 'HomeController'

}).otherwise({redirectTo: '/home});

}]);

Page 42: Angular JS, você precisa conhecer

e o DOM?

Page 43: Angular JS, você precisa conhecer

daqui pra frente, a mágica desaparece

Page 44: Angular JS, você precisa conhecer

diretiva

Page 45: Angular JS, você precisa conhecer

APP Controller

Serviço

<view>

filters

diretivas

Page 46: Angular JS, você precisa conhecer

APP Controller

Serviço

<view>

filters

diretivas scope

Page 47: Angular JS, você precisa conhecer

APP Controller

Serviço

<view>

filters

diretivas

$injector

Page 48: Angular JS, você precisa conhecer

E - Elemento:<my-directive></my-directive>

A - Atributo:<div my-directive="exp"> </div>

C - Classe:<div class="my-directive: exp;"></div>

M - Comentário: <!-- directive: my-directive exp -->

Page 49: Angular JS, você precisa conhecer

<DOM>

Page 50: Angular JS, você precisa conhecer

<DOM>

COMPILE

Page 51: Angular JS, você precisa conhecer

<DOM>

COMPILE

LINK

Page 52: Angular JS, você precisa conhecer

<DOM>

COMPILE

LINK

Page 53: Angular JS, você precisa conhecer

window.appTalk.directive('directiveName', function factory(injectables) {

var definicaoDeDiretiva = { priority: 0, template: '<div></div>', templateUrl: 'directive.html', replace: false, transclude: false, restrict: 'A', scope: false, compile: function compile(tElement, tAttrs, transclude) { return { pre: function preLink() { ... }, post: function postLink() { ... } } }, link: function postLink(scope, iElement, iAttrs) { ... } };

return definicaoDeDiretiva;});

Page 54: Angular JS, você precisa conhecer

leaky abstraction

Page 55: Angular JS, você precisa conhecer

Obrigado!

Henrique Netto

mas espere...

Page 56: Angular JS, você precisa conhecer

[email protected]

Henrique Netto