SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
DatePicker
com
AngularJS
Author: Douglas Lira
douglas.lira.web@gmail.com
1 - A ideia
Criar um datepicker, simples, fácil e que possa ser utilizado sem precisar
identificar o ID que o mesmo atuará. Então criei uma directive =D.
2 – Ferramentas
AngularJS - http://angularjs.org/
Datepicker - http://www.eyecon.ro/bootstrap-datepicker/
3 – Mão na massa!!
1 – index.html
<!doctype html>
<html ng-app="App">
<head>
<meta charset="utf-8">
<title>Datepicker - AngularJS by Douglas Lira</title>
<link href="css/bootstrap.min.css" media="all" rel="stylesheet" type="text/css" />
<link href="css/datepicker.css" media="all" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootstrap-datepicker.js"></script>
<script src="js/angular.min.js"></script>
<script src="controller/MainController.js"></script>
<script src="js/App.js"></script>
</head>
<body ng-controller="MainController">
<input type="text" datepicker name="datestart" ng-model="datestart">
</body>
</html>
2 – MainController.js – controller/MainController.js
function MainController($scope) {
$scope.datestart = '';
};
3 – App.js – js/App.js
$app = angular.module('App',[]);
// 1
$app.directive('datepicker', function() {
return {
restrict: 'A', // 2
require : 'ngModel', // 3
link : function (scope, element, attrs, MainController) {
$(function(){
var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
// 4
element.datepicker({
format:'dd/mm/yyyy',
onRender: function(date) {
return date.valueOf() < now.valueOf() ? 'disabled' : '';
}
}).on('changeDate',function(ev){
var newDate = new Date(ev.date);
var newMonth = newDate.getMonth()+1;
var newDay = newDate.getDate()+1;
dateVal = [((newDay < 10) ? "0"+newDay : newDay), ((newMonth < 10) ? "0"+newMonth : newMonth),
newDate.getFullYear()].join('/');
MainController.$setViewValue(dateVal);
scope.$apply();
});
});
}
}
});
Explicando um pouco...
1 – Criei uma directive com o nome “datepicker”
2 – A directive atuará como atributo de um elemento (Neste caso o input)
3 – Qualquer model que estiver atuando no elemento ele será afetado pela directive, ou
seja, ao mudar o valor do input o valor será o mesmo do model
4 – Apenas instanciei o plug-in datepicker
angularjs-br@googlegroups.com
Ajude a compartilhar conhecimento em AngularJS

Mais conteúdo relacionado

Semelhante a Directive com AngularJS - Datepicker

Semelhante a Directive com AngularJS - Datepicker (20)

Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Mecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBMecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDB
 
AngularJS com loadOnDemand
AngularJS com loadOnDemandAngularJS com loadOnDemand
AngularJS com loadOnDemand
 
jQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com JavascriptjQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com Javascript
 
2° Codelab - Por onde começar com AngularJS
2° Codelab  - Por onde começar com AngularJS2° Codelab  - Por onde começar com AngularJS
2° Codelab - Por onde começar com AngularJS
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Angular js
Angular jsAngular js
Angular js
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Prototype Framework Javascript
Prototype Framework JavascriptPrototype Framework Javascript
Prototype Framework Javascript
 
Introdução ao ReactNative
Introdução ao ReactNativeIntrodução ao ReactNative
Introdução ao ReactNative
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJS
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
 
AngularJS - Rotas
AngularJS - RotasAngularJS - Rotas
AngularJS - Rotas
 
Seo e HTML5
Seo e HTML5Seo e HTML5
Seo e HTML5
 
Componentes para a Web
Componentes para a WebComponentes para a Web
Componentes para a Web
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptx
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
Mini Curso - jQuery - FMU
Mini Curso - jQuery - FMUMini Curso - jQuery - FMU
Mini Curso - jQuery - FMU
 
Android Libs - AndroidDevConf
Android Libs - AndroidDevConfAndroid Libs - AndroidDevConf
Android Libs - AndroidDevConf
 

Mais de Douglas Lira (6)

AngularJS sem medo
AngularJS sem medoAngularJS sem medo
AngularJS sem medo
 
Criando um componente de busca com AngularJS
Criando um componente de busca com AngularJSCriando um componente de busca com AngularJS
Criando um componente de busca com AngularJS
 
Autenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandAutenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemand
 
Time sheet
Time sheetTime sheet
Time sheet
 
Menu dinâmico com kendoUI
Menu dinâmico com kendoUIMenu dinâmico com kendoUI
Menu dinâmico com kendoUI
 
Plugin zend acl
Plugin zend aclPlugin zend acl
Plugin zend acl
 

Último

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Último (20)

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 

Directive com AngularJS - Datepicker

  • 2. 1 - A ideia Criar um datepicker, simples, fácil e que possa ser utilizado sem precisar identificar o ID que o mesmo atuará. Então criei uma directive =D. 2 – Ferramentas AngularJS - http://angularjs.org/ Datepicker - http://www.eyecon.ro/bootstrap-datepicker/ 3 – Mão na massa!!
  • 3. 1 – index.html <!doctype html> <html ng-app="App"> <head> <meta charset="utf-8"> <title>Datepicker - AngularJS by Douglas Lira</title> <link href="css/bootstrap.min.css" media="all" rel="stylesheet" type="text/css" /> <link href="css/datepicker.css" media="all" rel="stylesheet" type="text/css" /> <script src="js/jquery-1.10.2.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/bootstrap-datepicker.js"></script> <script src="js/angular.min.js"></script> <script src="controller/MainController.js"></script> <script src="js/App.js"></script> </head> <body ng-controller="MainController"> <input type="text" datepicker name="datestart" ng-model="datestart"> </body> </html> 2 – MainController.js – controller/MainController.js function MainController($scope) { $scope.datestart = ''; };
  • 4. 3 – App.js – js/App.js $app = angular.module('App',[]); // 1 $app.directive('datepicker', function() { return { restrict: 'A', // 2 require : 'ngModel', // 3 link : function (scope, element, attrs, MainController) { $(function(){ var nowTemp = new Date(); var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0); // 4 element.datepicker({ format:'dd/mm/yyyy', onRender: function(date) { return date.valueOf() < now.valueOf() ? 'disabled' : ''; } }).on('changeDate',function(ev){ var newDate = new Date(ev.date); var newMonth = newDate.getMonth()+1; var newDay = newDate.getDate()+1; dateVal = [((newDay < 10) ? "0"+newDay : newDay), ((newMonth < 10) ? "0"+newMonth : newMonth), newDate.getFullYear()].join('/'); MainController.$setViewValue(dateVal); scope.$apply(); }); }); } } }); Explicando um pouco... 1 – Criei uma directive com o nome “datepicker” 2 – A directive atuará como atributo de um elemento (Neste caso o input) 3 – Qualquer model que estiver atuando no elemento ele será afetado pela directive, ou seja, ao mudar o valor do input o valor será o mesmo do model 4 – Apenas instanciei o plug-in datepicker angularjs-br@googlegroups.com Ajude a compartilhar conhecimento em AngularJS