SlideShare uma empresa Scribd logo
1 de 70
<html>
<head>
<title>AngularJs - ToDo App</title>
</head>
<body>
</body>
</html>
Utilizando diretivas
Diretivas são extensões da linguagem HTML que nos permitem definições
de novos comportamentos de forma declarativa
ngApp
Definindo as fronteiras da aplicação
<html>
<head>
<meta charset="utf-8">
<title>AngularJs - ToDo App</title>
<script src="js/angular.min.js"></script>
</head>
<body>
</body>
</html>
<html ng-app="todoApp">
<head>
<meta charset="utf-8">
<title>AngularJs - ToDo App</title>
<script src="js/angular.min.js"></script>
</head>
<body>
</body>
</html>
<html ng-app='todoApp'>
<head>
<meta charset='utf-8'>
<title>AngularJs - ToDo App</title>
<script src='js/angular.min.js'></script>
</head>
<script>
angular.module('todoApp',[]);
</script>
<body>
</body>
</html>
ngController
Vincula um elemento da View ao Controller
<html ng-app='todoApp'>
<head>
<meta charset='utf-8'>
<title>AngularJs - ToDo App</title>
<script src='js/angular.min.js'></script>
</head>
<script>
angular.module('todoApp',[]);
angular.module('todoApp').controller('mainCtrl',function($scope){
$scope.app = ‘Hello world’;
});
</script>
<body>
<div ng-controller="mainCtrl">
{{app}}
</div>
</body>
</html>
ngBind
Substitui o elemento por uma expressão
<html ng-app='todoApp'>
<head>
<meta charset='utf-8'>
<title>AngularJs - ToDo App</title>
<script src='js/angular.min.js'></script>
</head>
<script>
angular.module('todoApp',[]);
angular.module('todoApp').controller('mainCtrl',function($scope){
$scope.app = ‘Hello world’;
});
</script>
<body>
<div ng-controller="mainCtrl">
<span ng-bind="app"></span>
</div>
</body>
</html>
<html ng-app='todoApp'>
<head>
<meta charset='utf-8'>
<title>AngularJs - ToDo App</title>
<script src='js/angular.min.js'></script>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<script>
angular.module('todoApp',[]);
angular.module('todoApp').controller('mainCtrl',function($scope){
$scope.app = 'Todo App';
});
</script>
<body>
<div ng-controller="mainCtrl">
<div class="jumbotron">
{{app}}
</div>
</div>
</body>
</html>
ngRepeat
Iterando sobre os itens de uma coleção
<script>
angular.module('todoApp',[]);
angular.module('todoApp').controller('mainCtrl',function($scope){
$scope.app = 'Todo App';
$scope.todos = [
{afazer:'Reunião',quando:'Quarta'},
{afazer:'Lavar o carro',quando:'Terça'},
{afazer:'Tozar cachorro',quando:'Quinta'}
];
});
</script>
<body>
<div ng-controller="mainCtrl">
<div class="jumbotron">
<h3>{{app}}</h3>
<table class="table table-striped">
<tr>
<th>A fazer</th>
</tr>
<tr ng-repeat="todo in todos">
<td>{{todo.afazer}}</td>
</tr>
</table>
</div>
</div>
</body>
</html>
ngModel
Vincula uma propriedade ao $scope
<body>
<div ng-controller="mainCtrl">
<div class="jumbotron">
<h3>{{app}}</h3>
<table class="table table-striped">
<tr>
<th>A fazer</th>
</tr>
<tr ng-repeat="todo in todos">
<td>{{todo.afazer}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-model="tarefas.afazer"
placeholder="Tarefa">
</div>
</div>
</body>
ngClick
Atribui um comportamento ao evento de click
<body>
<div ng-controller="mainCtrl">
<div class="jumbotron">
<h3>{{app}}</h3>
<table class="table table-striped">
<tr>
<th>A fazer</th>
</tr>
<tr ng-repeat="todo in todos">
<td>{{todo.afazer}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-model="tarefa.afazer"
placeholder="Tarefa">
<input class="btn btn-primary btn-block" ng-click="novaTarefa(tarefa)" type="button"
value="salvar">
</div>
</div>
</body>
<script>
angular.module('todoApp',[]);
angular.module('todoApp').controller('mainCtrl',function($scope){
$scope.app = 'Todo App';
$scope.todos = [
{afazer:'Reunião'},
{afazer:'Lavar o carro'},
{afazer:'Tozar cachorro'}
];
$scope.novaTarefa = function(tarefa){
console.log($scope.tarefas);
$scope.todos.push(angular.copy(tarefa) );
delete $scope.tarefa;
}
});
</script>
ngDisabled
Desabilita dinamicamente um elemento
<body>
<div ng-controller="mainCtrl">
<div class="jumbotron">
<h3>{{app}}</h3>
<table class="table table-striped">
<tr>
<th>A fazer</th>
</tr>
<tr ng-repeat="todo in todos">
<td>{{todo.afazer}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-
model="tarefa.afazer" placeholder="Tarefa">
<input class="btn btn-primary btn-block" ng-
disabled="!tarefa.afazer" ng-click="novaTarefa(tarefa)" type="button"
value="salvar">
</div>
</div>
</body>
ngOptions
Renderiza as opções de um select
<script>
angular.module('todoApp',[]);
angular.module('todoApp').controller('mainCtrl',function($scope){
$scope.app = 'Todo App';
$scope.todos = [
{afazer:'Lavar o carro'},
{afazer:'Tozar cachorro'}
];
$scope.novaTarefa = function(tarefa){
$scope.todos.push(angular.copy(tarefa) );
delete $scope.tarefa;
}
$scope.diasdasemana = [
{nome:"Segunda-feira", abrev:"Seg",semana:"meio de
semana"},
{nome:"Terça-feira", abrev:"Ter",semana:"meio de
semana"},
{nome:"Quarta-feira", abrev:"Qua",semana:"meio de
semana"},
{nome:"Quinta-feira", abrev:"Qui",semana:"meio de
semana"},
{nome:"Sexta-feira", abrev:"Sex",semana:"meio de
semana"},
<div ng-controller="mainCtrl">
<div class="jumbotron">
<h3>{{app}}</h3>
<table class="table table-striped">
<tr>
<th>A fazer</th>
<th>Dia</th>
</tr>
<tr ng-repeat="todo in todos">
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-model="tarefa.afazer"
placeholder="Tarefa">
<select class="form-control" ng-model="tarefa.dia" ng-
options="dias.nome group by dias.semana for dias in diasdasemana">
<option value="">Selecione um dia da semana </option>
</select>
<input class="btn btn-primary btn-block" ng-
disabled="!tarefa.afazer" ng-click="novaTarefa(tarefa)" type="button"
value="salvar">
{{tarefa}}
<div class="jumbotron">
<h3>{{app}}</h3>
<table class="table table-striped">
<tr>
<th>A fazer</th>
<th>Dia</th>
</tr>
<tr ng-repeat="todo in todos">
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-
model="tarefa.afazer" placeholder="Tarefa">
<select class="form-control" ng-model="tarefa.dia" ng-
options="dias.abrev as dias.nome group by dias.semana for dias in diasdasemana">
<option value="">Selecione um dia da semana </option>
</select>
<input class="btn btn-primary btn-block" ng-
disabled="!tarefa.afazer" ng-click="novaTarefa(tarefa)" type="button"
value="salvar">
{{tarefa}}
</div>
ngClass
Aplicando classe e estilos dinamicamente
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
</tr>
<tr ng-class="{concluido:todo.concluida}"ng-
repeat="todo in todos">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
</tr>
<tr ng-
class="{concluido:todo.concluida,italico:todo.concluida}"ng-repeat="todo in
todos">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
</tr>
<tr ng-class="{'concluido
italico':todo.concluida}"ng-repeat="todo in todos">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<select class="form-control" ng-model="todo.dia" ng-
options="dias.nome group by dias.semana for dias in diasdasemana">
<option value="">Selecione um dia da semana </option>
</select>
<input class="btn btn-primary btn-block" ng-
disabled="!todo.afazer" ng-click="novaTarefa(todo)" type="button" value="salvar">
<input class="btn btn-danger btn-block" ng-
click="excluirTarefas(todos)" type="button" value="Remover concluidos"/>
</div>
Validação de formulários
Fazendo validações de campos de
formulários
<form name="formTodos">
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
<th>Data</th>
</tr>
<tr ng-class="{'concluido
italico':todo.concluida}"ng-repeat="todo in todos">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-
model="todo.afazer" placeholder="Tarefa">
<select class="form-control" ng-model="todo.dia"
ng-options="dias.nome group by dias.semana for dias in diasdasemana">
$valid e $invalid
Consultando a validade de um campo ou
formulário
<h3>{{app}}</h3>
É valido {{formTodos.$valid}}
<br>
É invalido {{formTodos.$invalid}}
<form name="formTodos">
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
<th>Data</th>
</tr>
<tr ng-class="{'concluido
italico':todo.concluida}"ng-repeat="todo in todos">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<input class="form-control" type="text" ng-
model="todo.afazer" placeholder="Tarefa" ng-required="true">
<input class="form-control" name="afazer"
type="text" ng-model="todo.afazer" placeholder="Tarefa" ng-required="true">
<select class="form-control" ng-model="todo.dia"
ng-options="dias.nome group by dias.semana for dias in diasdasemana">
<option value="">Selecione um dia da semana
</option>
</select>
<input class="btn btn-primary btn-block" ng-
disabled="formTodos.afazer.$invalid" ng-click="novaTarefa(todo)" type="button"
value="salvar">
Filtros
Transforma o resultado de uma expressão,
realizando operações como formatação de datas,
conversão de moedas ordenação de Arrays
uppercase
Transforma uma string em maiúsculas
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
</tr>
<tr ng-class="{'concluido
italico':todo.concluida}"ng-repeat="todo in todos">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer |
uppercase}}</td>
<td>{{todo.dia.nome}}</td>
</tr>
</table>
<input class="form-c
Filter
Filtra o resultado de uma expressão
<form name="formTodos">
<input class="form-control" type="text" ng-
model="busca" placeholder="Buscar">
<table class="table table-striped">
<tr>
<th></th>
<th>A fazer</th>
<th>Dia</th>
<th>Data</th>
</tr>
<tr ng-class="{'concluido
italico':todo.concluida}"ng-repeat="todo in todos | filter:busca">
<td> <input type="checkbox" ng-
model="todo.concluida" /> </td>
<td>{{todo.afazer}}</td>
<td>{{todo.dia.nome}}</td>
<td>{{todo.data}}</td>
</tr>
</table>
Integração com back end
$http
- get(url,config)
- post(url,data,config)
- put(url,data,config)
- delete(url,config)
- head(url,config)
- jsonp(url,config)
angular.module('todoApp').controller('mainCtrl',function($scope,$http){
$scope.app = 'Todo App';
$http.get('http://localhost:3412/todos').success(function(resp){
$scope.todos = resp;
console.log(resp);
}).error(function(err){
});
angular.module('todoApp').controller('mainCtrl',function($scope,$http){
$scope.app = 'Todo App';
$http.get('http://localhost:3412/todos').success(function(resp){
$scope.todos = resp;
console.log(resp);
}).error(function(err){
});
$scope.novaTarefa = function(todo){
$scope.todos.push(angular.copy(todo) );
delete $scope.todo;
}
$http.get('http://localhost:3412/dias').success(function(resp){
$scope.diasdasemana= resp;
console.log(resp);
}).error(function(err){
});
Organizando o projeto
Specific Style
Criando Serviços
Um serviço é um “singleton”, ou seja , um
objeto único criado na inicialização da
aplicação e que está disponível para ser
injetado em outros componentes
Factory
angular.module('todoApp').factory('todosAPI',function($http){
var _getTodos = function(){
return $http.get('http://localhost:3412/todos');
}
var _saveTodo = function(todo){
http.post('http://localhost:3412/todos',todo);
}
return{
getTodos : _getTodos,
saveTodo : _saveTodo
}
});
angular.module('todoApp').controller('mainCtrl',function($scope,todosAPI){
$scope.app = 'Todo App';
todosAPI.getTodos().success(function(resp){
$scope.todos = resp;
console.log(resp);
}).error(function(err){
});
Service
angular.module('todoApp').service('diassemanaAPI',function($http){
var _getDias = function(){
return $http.get('http://localhost:3412/dias');
}
this.getDias = _getDias;
});
angular.module('todoApp').controller('mainCtrl',function($scope,todosAPI,diasseman
aAPI){
$scope.app = 'Todo App';
todosAPI.getTodos().success(function(resp){
$scope.todos = resp;
console.log(resp);
}).error(function(err){
});
$scope.novaTarefa = function(todo){
$scope.todos.push(angular.copy(todo) );
delete $scope.todo;
}
diassemanaAPI.getDias().success(function(resp){
$scope.diasdasemana= resp;
console.log(resp);
}).error(function(err){
});
Value
angular.module('todoApp').value('config',{
baseUrl : "http://localhost:3412"
})
Provider
angular.module('todoApp').provider('serial',function(){
var tamanho = 5;
this.setTamanhoSerial = function(tam){
tamanho = tam
}
this.$get = function(){
return{
gerar : function(){
var serial="";
while(serial.length < tamanho){
serial+=
String.fromCharCode(Math.floor(Math.random() * 64) + 32);
}
return serial;
}
}
}
})
angular.module('todoApp').config(function(serialProvider){
serialProvider.setTamanhoSerial(10);
})
Criando Filtros
angular.module('todoApp').filter('etc',function(){
return function(input){
}
})
angular.module('todoApp').filter('etc',function(){
return function(input, tamanho){
if(input)
input = input.substr(0, tamanho || 3)+'...'
return input;
}
})
Criando Diretivas
angular.module('todoApp').directive('todoAlert',function(){
return{
template : '<div class="todo-alerta">{{erro}}</div>'
}
})
angular.module('todoApp').directive('todoAlert',function(){
return{
templateUrl : '<div class="todo-alerta">{{erro}}</div>'
}
})
Single Page Application
<html ng-app="todoApp">
<head>
<meta charset="utf-8">
<title>TODO - APP</title>
<script src="angular-1.6.0/angular.js"></script>
<link
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
</head>
<body >
<div ng-view></div>
</body>
angular.module('todoApp').config(function($routeProvider){
$routeProvider.when('/',{
templateUrl : 'templates/principal.html'
}).when('/novo',{
templateUrl : 'templates/novo.html'
})
$routeProvider.otherwise({redirectTo:'/'})
});
Email : junqueira.andre33@gmail.com
Git : https://github.com/andreluisjunqueira
Twitter:@junqueiraandre1
Angular js

Mais conteúdo relacionado

Mais procurados

AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasJanderson Fernandes Cardoso
 
Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017
Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017
Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017Fernando Freitas Alves
 
Construindo Diretivas com AngularJS
Construindo Diretivas com AngularJSConstruindo Diretivas com AngularJS
Construindo Diretivas com AngularJSRodrigo Branas
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Jaime Schettini
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 

Mais procurados (12)

AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivas
 
Aula 7 – linguagem HTML - Frames
Aula 7 – linguagem HTML - FramesAula 7 – linguagem HTML - Frames
Aula 7 – linguagem HTML - Frames
 
Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017
Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017
Apresentação sobre Bootstrap na Maratona de Inovação ISITEC 2017
 
Aula 4 – Linguagem HTML - Imagens e links
Aula 4 – Linguagem HTML - Imagens e linksAula 4 – Linguagem HTML - Imagens e links
Aula 4 – Linguagem HTML - Imagens e links
 
Construindo Diretivas com AngularJS
Construindo Diretivas com AngularJSConstruindo Diretivas com AngularJS
Construindo Diretivas com AngularJS
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 

Semelhante a Angular js

Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecermeet2Brains
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaMarianna Cruz Teixeira
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Mitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivelMitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivel46vbeng
 
Mitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivelMitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivel46vbeng
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
PHP básico para iniciantes
PHP básico para iniciantesPHP básico para iniciantes
PHP básico para iniciantesEduardo Mendes
 
HTML&CSS 2 - Intermediate HTML
HTML&CSS 2 - Intermediate HTMLHTML&CSS 2 - Intermediate HTML
HTML&CSS 2 - Intermediate HTMLDinis Correia
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfGabrielaMota46
 
Resumos html
Resumos htmlResumos html
Resumos htmlesaf
 
Trabalho Escrito Java Web - Abel
Trabalho Escrito Java Web - AbelTrabalho Escrito Java Web - Abel
Trabalho Escrito Java Web - AbelAbel Gustavo Jorge
 

Semelhante a Angular js (20)

Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecer
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Html5 workshop
Html5 workshopHtml5 workshop
Html5 workshop
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na prática
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Mitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivelMitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivel
 
Mitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivelMitos e-verdades-pvc-flexivel
Mitos e-verdades-pvc-flexivel
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Aula html5
Aula html5Aula html5
Aula html5
 
Css Curso completo
Css Curso completoCss Curso completo
Css Curso completo
 
PHP básico para iniciantes
PHP básico para iniciantesPHP básico para iniciantes
PHP básico para iniciantes
 
HTML&CSS 2 - Intermediate HTML
HTML&CSS 2 - Intermediate HTMLHTML&CSS 2 - Intermediate HTML
HTML&CSS 2 - Intermediate HTML
 
Http Servlet
Http ServletHttp Servlet
Http Servlet
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
HTML - aula 1
HTML - aula 1HTML - aula 1
HTML - aula 1
 
HTML + CSS
HTML + CSSHTML + CSS
HTML + CSS
 
LPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdfLPII_Aula_7-JQuery.pdf
LPII_Aula_7-JQuery.pdf
 
Resumos html
Resumos htmlResumos html
Resumos html
 
Android na Prática
Android na PráticaAndroid na Prática
Android na Prática
 
Trabalho Escrito Java Web - Abel
Trabalho Escrito Java Web - AbelTrabalho Escrito Java Web - Abel
Trabalho Escrito Java Web - Abel
 

Angular js