{"id":438,"date":"2015-12-14T13:41:28","date_gmt":"2015-12-14T13:41:28","guid":{"rendered":"http:\/\/www.andrefelizardo.com.br\/blog\/?p=438"},"modified":"2016-12-26T11:42:23","modified_gmt":"2016-12-26T11:42:23","slug":"o-que-e-angularjs","status":"publish","type":"post","link":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","title":{"rendered":"O que \u00e9 AngularJS"},"content":{"rendered":"<p><a name=\"o-que-e\"><\/a>AngularJS \u00e9 um framework para o desenvolvimento de aplica\u00e7\u00f5es web, utilizando a o <strong>JavaScript<\/strong>.\u00a0Seu objetivo \u00e9 aumentar aplicativos que podem ser acessados por um navegador web, sob o padr\u00e3o model\u2013view\u2013controller (MVC), em um esfor\u00e7o para facilitar tanto o desenvolvimento<!--more--> quanto o teste dos aplicativos.<\/p>\n<ul>\n<li><a href=\"#o-que-e\">O que \u00e9 AngularJS?<\/a><\/li>\n<li><a href=\"#historia\">Hist\u00f3ria do AngularJS<\/a><\/li>\n<li><a href=\"#vantagens\">Vantagens<\/a><\/li>\n<li><a href=\"#exercicio\">Hello World &#8211; Aplica\u00e7\u00e3o Pr\u00e1tica<\/a><\/li>\n<\/ul>\n<h1><a name=\"historia\"><\/a>Hist\u00f3ria do\u00a0AngularJS<\/h1>\n<p>Foi criado por Misko Hevery e Adams Abrons\u00a0em 2009.\u00a0Inicialmente, o projeto tinha como objetivo\u00a0facilitar a cria\u00e7\u00e3o de aplica\u00e7\u00f5es web. Alguns anos\u00a0depois Misko foi trabalhar no Google, no projeto do Google Feedback, e ele encontrou um cen\u00e1rio um pouco complicado: o projeto j\u00e1 contava com <strong>17.000 linhas de c\u00f3digo<\/strong>.<\/p>\n<p>Depois de alguns meses de trabalho ele decidiu fazer uma aposta com seu gerente.<\/p>\n<p>Ele apostou que reescreveria o c\u00f3digo do projeto\u00a0em 2 semanas, contanto que pudesse utilizar o\u00a0framework que tinha desenvolvido. Eles terminaram de reescrever o c\u00f3digo\u00a0em 3 semanas, mas reduziu o projeto para <span style=\"text-decoration: underline;\"><strong>1.500 linhas<\/strong><\/span>!<\/p>\n<p>Com isso, aos poucos o Google foi adotando o framework para outro projetos internos. No ano passado (2014), foi divulgado que\u00a0mais de 110 projetos do Google utilizam o\u00a0AngularJS.<\/p>\n<h1><a name=\"vantagens\"><\/a>Vantagens<\/h1>\n<ul>\n<li>\u00c9 Open Source;<\/li>\n<li>Mantido pelo Google;<\/li>\n<li>Arquitetura da aplica\u00e7\u00e3o em camadas bem definidas;<\/li>\n<li>Permite a cria\u00e7\u00e3o modular e de componentes reutiliz\u00e1veis;<\/li>\n<li>J\u00e1 possui a infraestrutura para integra\u00e7\u00e3o com back-end;<\/li>\n<li>Facilita a etapa de testes de forma automatizada;<\/li>\n<\/ul>\n<h1><a name=\"exercicio\"><\/a>Como come\u00e7ar a aplicar? &#8211; Hello World<\/h1>\n<h2>Passo 1<\/h2>\n<p><a href=\"https:\/\/angularjs.org\/\" target=\"_blank\">https:\/\/angularjs.org\/<\/a><\/p>\n<p>Entre no site oficial do framework e, eu aconselho, a baixar a vers\u00e3o em zip que tem v\u00e1rias op\u00e7\u00f5es para desenvolvimento e testes.<\/p>\n<h2>Passo 2<\/h2>\n<ul>\n<li>Crie uma pasta com o nome de HelloWorld.<\/li>\n<li>Extraia o arquivo angular.js para dentro desta pasta.<\/li>\n<li>Crie uma estrutura HTML b\u00e1sica, como segue na imagem abaixo.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs-helloworld-01.png\"><img decoding=\"async\" class=\"aligncenter size-content wp-image-446 lazyload\" data-src=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs-helloworld-01-508x264.png\" alt=\"AngularJS - Hello World 01\" width=\"508\" height=\"264\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 508px; --smush-placeholder-aspect-ratio: 508\/264;\" \/><\/a><br \/>\n<script src=\"https:\/\/gist.github.com\/andrefelizardo\/0ffee95618022702c145.js\"><\/script><\/p>\n<p>&nbsp;<\/p>\n<h2>Passo 3<\/h2>\n<p>Vamos agora definir a aplica\u00e7\u00e3o com a diretiva\u00a0<strong>ng-app<\/strong>. Esta declara\u00e7\u00e3o, \u00e9 interessante que fique na tag mais externa do nosso c\u00f3digo. Costumamos declarar na tag HTML, mas n\u00e3o \u00e9 obrigat\u00f3rio. Nela vamos definir o nome da seguinte forma:\u00a0<em>ng-app=&#8221;helloWorld&#8221;<\/em>.<\/p>\n<p><a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs-helloworld-02.png\"><img decoding=\"async\" class=\"aligncenter size-content wp-image-447 lazyload\" data-src=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs-helloworld-02-514x264.png\" alt=\"AngularJS - Hello World\" width=\"514\" height=\"264\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 514px; --smush-placeholder-aspect-ratio: 514\/264;\" \/><\/a><br \/>\n<script src=\"https:\/\/gist.github.com\/andrefelizardo\/d537928968557214431a.js\"><\/script><\/p>\n<p>Em seguida vamos come\u00e7ar a criar o script da aplica\u00e7\u00e3o. Declare um script e dentro dele digite o c\u00f3digo como na imagem. Esse nosso primeiro app \u00e9 um m\u00f3dulo, e portanto, utilizamos o comando\u00a0<em>angular.mode<\/em>.<\/p>\n<p>Depois colocamos entre &#8220;&#8221; o nome de nossa aplica\u00e7\u00e3o (o mesmo que colocamos em\u00a0<em>ng-app<\/em>. Os colchetes, que nesse exerc\u00edcio vamos deixar vazio, serve para importa\u00e7\u00e3o de outros m\u00f3dulos, servi\u00e7os, entre outros.<\/p>\n<h2>Passo 4<\/h2>\n<p>Em seguida criaremos o nosso <em>controler<\/em> e a nossa <em>view<\/em>, com o <em>scope<\/em> conectando os dois.<\/p>\n<p><a href=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs-helloworld-03.png\"><img decoding=\"async\" class=\"aligncenter size-content wp-image-448 lazyload\" data-src=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs-helloworld-03-593x264.png\" alt=\"AngularJS - Hello World\" width=\"593\" height=\"264\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 593px; --smush-placeholder-aspect-ratio: 593\/264;\" \/><\/a><br \/>\n<script src=\"https:\/\/gist.github.com\/andrefelizardo\/87489b32ac1805a97d75.js\"><\/script><\/p>\n<p>Primeiro recuperamos o nosso m\u00f3dulo, e adicionamos o nosso controller, neste caso coloquei o nome de <em>helloWorldController.<\/em> Dentro dele chamamos uma fun\u00e7\u00e3o passando o\u00a0<em>$scope<\/em>.<\/p>\n<p>\u00c9 dentro dessa fun\u00e7\u00e3o que grande parte do nosso c\u00f3digo ficar\u00e1, em aplica\u00e7\u00f5es mais complexas.<\/p>\n<p>A tag <em>ng-controller<\/em> poderia estar no <em>body<\/em>, em uma <em>div<\/em>, em qualquer tag HTML. Importante frisar que a view n\u00e3o \u00e9 o arquivo, a view \u00e9 um conjunto de tags.<\/p>\n<p><strong>Pronto!\u00a0<\/strong>Agora o t\u00edtulo da nossa aplica\u00e7\u00e3o est\u00e1 sendo inserido no HTML de forma din\u00e2mica!<\/p>\n<p>Claro, essa aplica\u00e7\u00e3o \u00e9 o c\u00f3digo mais b\u00e1sico poss\u00edvel de criar com Angular. Mas, \u00e9 um \u00f3timo come\u00e7o.<\/p>\n<p>Se quiser, olhe esse c\u00f3digo e v\u00e1rios outros no meu reposit\u00f3rio do <a href=\"https:\/\/github.com\/andrefelizardo\/angular\/\" target=\"_blank\">Github<\/a>.<\/p>\n<p>Quer entender melhor? Assista a esse v\u00eddeo!<\/p>\n<p><iframe data-src=\"https:\/\/www.youtube.com\/embed\/_y7rKxqPoyg\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p>Ficou com d\u00favidas? Deixa nos coment\u00e1rios!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AngularJS \u00e9 um framework para o desenvolvimento de aplica\u00e7\u00f5es web, utilizando a o JavaScript.\u00a0Seu objetivo \u00e9 aumentar aplicativos que podem ser acessados por um navegador web, sob o padr\u00e3o model\u2013view\u2013controller (MVC), em um esfor\u00e7o para facilitar tanto o desenvolvimento<\/p>\n","protected":false},"author":1,"featured_media":441,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,5],"tags":[96,40,55,56,95],"class_list":["post-438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dicas","category-tecnologia","tag-angularjs","tag-google","tag-javascript","tag-js","tag-programacao"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>O que \u00e9 AngularJS - Blog do Andr\u00e9 Felizardo<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que \u00e9 AngularJS - Blog do Andr\u00e9 Felizardo\" \/>\n<meta property=\"og:description\" content=\"AngularJS \u00e9 um framework para o desenvolvimento de aplica\u00e7\u00f5es web, utilizando a o JavaScript.\u00a0Seu objetivo \u00e9 aumentar aplicativos que podem ser acessados por um navegador web, sob o padr\u00e3o model\u2013view\u2013controller (MVC), em um esfor\u00e7o para facilitar tanto o desenvolvimento\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog do Andr\u00e9 Felizardo\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-14T13:41:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-12-26T11:42:23+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1152\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Felizardo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Felizardo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Felizardo\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\"},\"headline\":\"O que \u00e9 AngularJS\",\"datePublished\":\"2015-12-14T13:41:28+00:00\",\"dateModified\":\"2016-12-26T11:42:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/\"},\"wordCount\":591,\"commentCount\":1,\"image\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/angularjs.jpg\",\"keywords\":[\"angularjs\",\"google\",\"javascript\",\"js\",\"programa\u00e7\u00e3o\"],\"articleSection\":[\"Dicas\",\"Tecnologia\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/\",\"url\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/\",\"name\":\"O que \u00e9 AngularJS - Blog do Andr\u00e9 Felizardo\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/angularjs.jpg\",\"datePublished\":\"2015-12-14T13:41:28+00:00\",\"dateModified\":\"2016-12-26T11:42:23+00:00\",\"author\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\"},\"breadcrumb\":{\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/angularjs.jpg\",\"contentUrl\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/12\\\/angularjs.jpg\",\"width\":2048,\"height\":1152,\"caption\":\"AngularJS\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/o-que-e-angularjs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"O que \u00e9 AngularJS\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#website\",\"url\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/\",\"name\":\"Blog do Andr\u00e9 Felizardo\",\"description\":\"Programa\u00e7\u00e3o de dev para dev\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\",\"name\":\"Andr\u00e9 Felizardo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"url\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"contentUrl\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"caption\":\"Andr\u00e9 Felizardo\"},\"sameAs\":[\"http:\\\/\\\/www.andrefelizardo.com.br\"],\"url\":\"http:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/author\\\/andrefelizardo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"O que \u00e9 AngularJS - Blog do Andr\u00e9 Felizardo","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","og_locale":"pt_BR","og_type":"article","og_title":"O que \u00e9 AngularJS - Blog do Andr\u00e9 Felizardo","og_description":"AngularJS \u00e9 um framework para o desenvolvimento de aplica\u00e7\u00f5es web, utilizando a o JavaScript.\u00a0Seu objetivo \u00e9 aumentar aplicativos que podem ser acessados por um navegador web, sob o padr\u00e3o model\u2013view\u2013controller (MVC), em um esfor\u00e7o para facilitar tanto o desenvolvimento","og_url":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","og_site_name":"Blog do Andr\u00e9 Felizardo","article_published_time":"2015-12-14T13:41:28+00:00","article_modified_time":"2016-12-26T11:42:23+00:00","og_image":[{"width":2048,"height":1152,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg","type":"image\/jpeg"}],"author":"Andr\u00e9 Felizardo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Andr\u00e9 Felizardo","Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#article","isPartOf":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/"},"author":{"name":"Andr\u00e9 Felizardo","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b"},"headline":"O que \u00e9 AngularJS","datePublished":"2015-12-14T13:41:28+00:00","dateModified":"2016-12-26T11:42:23+00:00","mainEntityOfPage":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/"},"wordCount":591,"commentCount":1,"image":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#primaryimage"},"thumbnailUrl":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg","keywords":["angularjs","google","javascript","js","programa\u00e7\u00e3o"],"articleSection":["Dicas","Tecnologia"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","url":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","name":"O que \u00e9 AngularJS - Blog do Andr\u00e9 Felizardo","isPartOf":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#primaryimage"},"image":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#primaryimage"},"thumbnailUrl":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg","datePublished":"2015-12-14T13:41:28+00:00","dateModified":"2016-12-26T11:42:23+00:00","author":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b"},"breadcrumb":{"@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#primaryimage","url":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg","contentUrl":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg","width":2048,"height":1152,"caption":"AngularJS"},{"@type":"BreadcrumbList","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"http:\/\/www.andrefelizardo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"O que \u00e9 AngularJS"}]},{"@type":"WebSite","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#website","url":"http:\/\/www.andrefelizardo.com.br\/blog\/","name":"Blog do Andr\u00e9 Felizardo","description":"Programa\u00e7\u00e3o de dev para dev","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.andrefelizardo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b","name":"Andr\u00e9 Felizardo","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","url":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","contentUrl":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","caption":"Andr\u00e9 Felizardo"},"sameAs":["http:\/\/www.andrefelizardo.com.br"],"url":"http:\/\/www.andrefelizardo.com.br\/blog\/author\/andrefelizardo\/"}]}},"jetpack_featured_media_url":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg","jetpack_shortlink":"https:\/\/wp.me\/p6EP66-74","jetpack-related-posts":[{"id":799,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/angular-2-nao-continuacao-do-angular-1\/","url_meta":{"origin":438,"position":0},"title":"Angular 2 &#8211; A n\u00e3o continua\u00e7\u00e3o do Angular 1","author":"Andr\u00e9 Felizardo","date":"15 de janeiro de 2017","format":false,"excerpt":"T\u00e1 estudando Angular 2? N\u00e3o? Fica ligado que a gente j\u00e1 est\u00e1 no Angular 4 beta 3! Angular 2 foi oficialmente lan\u00e7ado em setembro de 2016. Mas tamb\u00e9m n\u00e3o precisa ficar t\u00e3o preocupado. De qualquer forma vamos colocar os pingos nos is\u00a0pra voc\u00ea entender de uma vez por toda o\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"http:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/01\/angular2.png?resize=700%2C400 2x"},"classes":[]},{"id":963,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-vue-js\/","url_meta":{"origin":438,"position":1},"title":"O que \u00e9 Vue.js","author":"Andr\u00e9 Felizardo","date":"10 de janeiro de 2018","format":false,"excerpt":"Vue.js \u00e9 uma biblioteca\u00a0JavaScript\u00a0acess\u00edvel, vers\u00e1til e perform\u00e1tica. E apesar do site oficial dizer que Vue.js \u00e9 um framework JavaScript Progressivo, eu j\u00e1 vou come\u00e7ar discordando :) Entendemos por framework, aquela solu\u00e7\u00e3o 'fechada' quando voc\u00ea j\u00e1 tem definido por exemplo a estrutura de diret\u00f3rios, ou a forma como voc\u00ea faz uma\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"http:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/01\/vuejs.png?resize=700%2C400 2x"},"classes":[]},{"id":926,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-ember-js\/","url_meta":{"origin":438,"position":2},"title":"O que \u00e9 Ember.js","author":"Andr\u00e9 Felizardo","date":"30 de setembro de 2017","format":false,"excerpt":"Ember.js \u00e9 um framework Javascript (sim, mais um) para construir aplica\u00e7\u00f5es web ambiciosas. O objetivo dele \u00e9 aumentar a produtividade de desenvolvimento de aplica\u00e7\u00f5es web, mas focado no paradigma de que \u00e9 melhor gastar um pouco mais de tempo no desenvolvimento por\u00e9m facilitar a manuten\u00e7\u00e3o. Antes de detalhar mais o\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"http:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"Logo Ember.js","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/09\/ember.js.png?resize=700%2C400 2x"},"classes":[]},{"id":527,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/ionic-framework-desenvolvendo-mobile-apps\/","url_meta":{"origin":438,"position":3},"title":"Ionic Framework &#8211; Desenvolvendo Mobile Apps","author":"Andr\u00e9 Felizardo","date":"14 de maio de 2016","format":false,"excerpt":"O que \u00e9 o Ionic Showcases Ionic Configura\u00e7\u00e3o e Instala\u00e7\u00e3o Node.js Cordova + Ionic Criando o primeiro app Divirta-se O que \u00e9 o Ionic? Ionic \u00e9 um framework livre e de c\u00f3digo aberto. O conceito principal desse framework, \u00e9 possibilitar a cria\u00e7\u00e3o de aplicativos mobile com linguagens web (HTML, CSS,\u2026","rel":"","context":"Em &quot;Aplicativos&quot;","block_context":{"text":"Aplicativos","link":"http:\/\/www.andrefelizardo.com.br\/blog\/category\/aplicativos\/"},"img":{"alt_text":"Ionic logo","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/05\/ionic-01.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/05\/ionic-01.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/05\/ionic-01.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/05\/ionic-01.png?resize=700%2C400 2x"},"classes":[]},{"id":706,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/react-js-o-que-e-introducao-ao-react\/","url_meta":{"origin":438,"position":4},"title":"React.js, o que \u00e9? &#8211; Introdu\u00e7\u00e3o ao React","author":"Andr\u00e9 Felizardo","date":"18 de outubro de 2016","format":false,"excerpt":"Se voc\u00ea tem acompanhado o mundo do Front-end nos \u00faltimos anos, com certeza voc\u00ea percebeu um boom em Frameworks e bibliotecas Javascript, como o AngularJS, React.js e v\u00e1rios outros. O que \u00e9 o React.js? React.js \u00e9 uma biblioteca JavaScript, desenvolvida por engenheiros\u00a0do Facebook (s\u00f3 de colocar o nome do Facebook\u2026","rel":"","context":"Em &quot;Curiosidades&quot;","block_context":{"text":"Curiosidades","link":"http:\/\/www.andrefelizardo.com.br\/blog\/category\/curiosidades\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=700%2C400 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=1050%2C600 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/react.js.png?resize=1400%2C800 4x"},"classes":[]},{"id":943,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/javascript-comecando-do-jeito-certo\/","url_meta":{"origin":438,"position":5},"title":"JavaScript &#8211; Come\u00e7ando do jeito certo","author":"Andr\u00e9 Felizardo","date":"30 de novembro de 2017","format":false,"excerpt":"O que \u00e9 JavaScript? JavaScript \u00e9 uma linguagem de programa\u00e7\u00e3o, que foi criada originalmente para rodar em navegadores. Na tr\u00edade do Front-end, a linguagem \u00e9 respons\u00e1vel por interagir com o usu\u00e1rio (como mensagens de erro e outros), sem a necessidade das informa\u00e7\u00f5es irem at\u00e9 o servidor. O que \u00e9 JavaScript?\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"http:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/11\/javascript-comecando_jeito_certo.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/11\/javascript-comecando_jeito_certo.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/11\/javascript-comecando_jeito_certo.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2017\/11\/javascript-comecando_jeito_certo.png?resize=700%2C400 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts\/438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=438"}],"version-history":[{"count":0,"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts\/438\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/media\/441"}],"wp:attachment":[{"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=438"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}