{"id":1118,"date":"2014-01-07T12:00:01","date_gmt":"2014-01-07T11:00:01","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1118"},"modified":"2014-01-07T12:08:42","modified_gmt":"2014-01-07T11:08:42","slug":"sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/","title":{"rendered":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I"},"content":{"rendered":"<p>Siguiendo con la serie de post en las que introduc\u00edamos diversos frameworks JavaScript en nuestros desarrollos de SharePoint (<a href=\"http:\/\/www.compartimoss.com\/revistas\/numero-16\/uso-de-frameworks-javascript-en-desarrollos-sharepoint-parte-i\" target=\"_blank\">Kendo UI<\/a>, <a href=\"http:\/\/www.compartimoss.com\/revistas\/numero-17\/usar-framework-javascript-en-nuestros-desarrollos-sharepoint-parte-ii\" target=\"_blank\">Ext JS<\/a> o <a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/2013\/10\/29\/introduccion-mustache-js-dentro-de-sharepoint\/\" target=\"_blank\">Mustache<\/a>) en este post voy a dar una introducci\u00f3n a Angular, quizas el framework que m\u00e1s est\u00e1 dando que hablar \u00faltimamente por aportar unas particularidades que le hacen realmente potente y \u00abespecial\u00bb.<\/p>\n<p><strong>\u00bfQue es AngularJS?<\/strong><\/p>\n<p>AngularJS es un framework JavaScript desarrollado por Google que se utiliza para desarrollar aplicaciones en el lado Cliente. Utiliza un patr\u00f3n MVC un tanto particular donde el Modelo son los datos almacenados en las propiedades de los objetos, la Vista es el propio DOM y el controlador son las clases JavaScript.<\/p>\n<p><!--more--><\/p>\n<p>Otra de las caracteristicas que le hacen m\u00e1s particular es que extiende el comportamiento del HTML con la finalidad de hacer m\u00e1s r\u00e1pida la aplicaci\u00f3n (dado que el acceso al DOM es uno de los puntos d\u00e9biles en los frameworks JavaScript). Esto tiene como objetivo poder servir las vistas din\u00e1micas eficientemente (esta caracteristica hace que AngularJS sea un framework muy interesante para el desarrollo de Apps m\u00f3viles).<\/p>\n<p>La forma en la que esta implementado permite que en AngularJS sea posible hacer pruebas unitarias.<\/p>\n<p><strong>Manos a la obra<\/strong><\/p>\n<p>Vamos a empezar con un ejemplo muy simple para ver la potencia de Angular, en este ejemplo vamos a mostrar los objetivos que nos hemos marcado para este 2014.<br \/>\nPara comenzar vamos a crearnos un proyecto de Visual Studio de tipo SharePoint App.<br \/>\n<a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1138 alignnone\" alt=\"AppAngular2\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png\" width=\"622\" height=\"406\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png 778w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2-300x195.png 300w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/a><\/p>\n<p>En la pagina default.aspx lo primero de todo es a\u00f1adir la referencia Angular en nuestro proyecto, para ello, vamos a la siguiente direcci\u00f3n y nos descargamos la librer\u00eda en el siguiente <a href=\"http:\/\/angularjs.org\/\" target=\"_blank\">link<\/a>. Una vez descargada, la a\u00f1adimos en nuestro desarrollo de la siguiente forma:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;script type=&quot;text\/javascript&quot; src=&quot;..\/Scripts\/angular.min.js&quot;&gt;&lt;\/script&gt;\r\n<\/pre>\n<p>Introduciremos el siguiente c\u00f3digo en el HTML:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;\/pre&gt;\r\n&lt;div&gt;\r\n&lt;h2&gt;Propositos 2014&lt;\/h2&gt;\r\n&lt;div&gt;&lt;span&gt;{{remaining()}} of {{todos.length}} remaining&lt;\/span&gt;\r\n&lt;ul class=&quot;unstyled&quot;&gt;\r\n\t&lt;li&gt;&lt;input type=&quot;checkbox&quot; \/&gt;\r\n &lt;span class=&quot;done-{{todo.done}}&quot;&gt;{{todo.text}}&lt;\/span&gt;&lt;\/li&gt;\r\n&lt;\/ul&gt;\r\n&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;pre&gt;<\/pre>\n<p>Como hemos comentado anteriormente, tiene una serie de particularidades y extiende el HTML con aspectos que parecen de programaci\u00f3n:<br \/>\n<strong>ng-app:<\/strong> indica que en ese div se ejecuta la aplicaci\u00f3n de Angular<br \/>\n<strong>ng-controller:<\/strong> indica el controlador que se le va a aplicar<br \/>\n<strong>ng-model:<\/strong> indica el modelo que se va a utilizar<br \/>\nOtras particularidades son que para referenciar a cualquier metodo, variable, propiedad se utilizan los {{ }} (os recuerda a algo? Algo muy similar a lo que vimos con Mustache)<\/p>\n<p>El siguiente paso que tenemos que hacer es implementar la clase de JavaScript que se corresponde con este modelo, para ello, utilizaremos el siguiente codigo:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar myApp = angular.module('myApp', &#x5B;]);\r\n\r\nfunction TodoCtrl($scope) {\r\n    $scope.todos = &#x5B;\r\n      { text: 'Implantar tecnicas ALM', done: false },\r\n      { text: 'Introducir mejoras en los desarrollos', done: false },\r\n      { text: 'Mejorar el conocimiento de JavaScript', done: false },\r\n      { text: 'Introducir mejoras en la parte UX-Developer', done: false },\r\n      { text: 'ir al MVP-Summit', done: false }\r\n    ];\r\n\r\n         $scope.remaining = function() {\r\n            var count = 0;\r\n            angular.forEach($scope.todos, function(todo) {\r\n                count += todo.done ? 0 : 1;\r\n            });\r\n            return count;\r\n        };\r\n    }\r\n<\/pre>\n<p>Este c\u00f3digo no tiene mucho misterio, por un lado, tenemos puestas unas variables donde est\u00e1n los datos a mostrar (ahora veremos c\u00f3mo consumir estos datos de una lista de SharePoint), y nos definimos una funci\u00f3n para indicar el n\u00famero de prop\u00f3sitos que hemos cumplido o no.<\/p>\n<p><strong>Comunicarnos con SharePoint<\/strong><br \/>\nEn primer lugar, creamos una definici\u00f3n de la Lista, para ello utilizamos el asistente de Visual Studio. Dentro de la lista le a\u00f1adiremos unos datos por defecto. Para a\u00f1adir los datos basta con editar el archivo \u00abelements.xml\u00bb que se encuentra ubicado dentro de la Instancia de la lista y a\u00f1adir los datos.<\/p>\n<p>Una vez tenemos los lista definida, ahora tenemos que realizar las modificaciones dentro de la clase para que se obtengan los datos de la lista de SharePoint. En primer lugar nos crearemos un \u00abservice\u00bb de AngularJS donde realizaremos la llamada a SharePoint haciendo uso del Modelo de Objetos de Cliente de la siguiente forma:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nmyApp.service('$SharePointJSOMService', function ($q, $http) {\r\n    \/\/ Read from SharePoint List for Tasks\r\n    this.getTasks = function ($scope, listTitle) {\r\n        var deferred = $q.defer();\r\n        var web = context.get_web();\r\n        context.load(web);\r\n\r\n        var list = web.get_lists().getByTitle(listTitle);\r\n        var camlQuery = SP.CamlQuery.createAllItemsQuery();\r\n        this.listItems = list.getItems(camlQuery);\r\n        context.load(this.listItems);\r\n\r\n        context.executeQueryAsync(\r\n                                     Function.createDelegate(this, function () {\r\n                                         var ListEnumerator = this.listItems.getEnumerator();\r\n                                         while (ListEnumerator.moveNext()) {\r\n                                             var currentItem = ListEnumerator.get_current();\r\n                                             console.info(currentItem.get_item('Title') + currentItem.get_item('ID'));\r\n\r\n                                             $scope.todos.push({\r\n                                                 text: currentItem.get_item('Title'),\r\n                                                 done: false,\r\n                                                 id: currentItem.get_item('ID')\r\n                                             });\r\n                                             \/\/$scope is not updating so force with this command\r\n                                             $scope.$apply();\r\n\r\n                                         }\r\n                                     }),\r\n                                    Function.createDelegate(this, function (sender, args) {\r\n                                         deferred.reject('Request failed. ' + args.get_message() + '\\n' + args.get_stackTrace());\r\n                                     })\r\n\r\n         );\r\n        return deferred.promise;\r\n    };\r\n});\r\n<\/pre>\n<p>Definido el servicio, lo que tenemos que realizar ahora, es modificar el controlador para que haga uso de este servicio y podamos obtener los datos de la lista de SharePoint.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nfunction TodoCtrl($scope, $SharePointJSOMService) {\r\n    $scope.todos = &#x5B;  ];\r\n    var promise = $SharePointJSOMService.getTasks($scope, 'Propositos');\r\n    promise.then(\r\n        function (message) {\r\n            alert(message);\r\n        },\r\n        function (reason) {\r\n            alert(reason);\r\n        }\r\n    );\r\n        $scope.remaining = function() {\r\n            var count = 0;\r\n            angular.forEach($scope.todos, function(todo) {\r\n                count += todo.done ? 0 : 1;\r\n            });\r\n            return count;\r\n        };\r\n}\r\n<\/pre>\n<p style=\"text-align: left\">Por \u00faltimo, ejecutamos la APP y visualizaremos el siguiente resultado:<\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1131 aligncenter\" alt=\"AppAngular\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular.png\" width=\"435\" height=\"285\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular.png 435w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular-300x196.png 300w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/><\/a><\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Hemos visto la facilidad y la claridad que tiene AngularJS para integrarlo en nuestros desarrollos. Una de sus principales ventajas es que se crea un proyecto muy bien estructurado, escalable y reutilizable. AngularJS es muy completo ya que por una parte, tiene funcionalidad de DataBinding, Routing y lo podemos utilizar para mostrar Templates.<\/p>\n<p>Angular tiene muchos conceptos que aplicar (filter, directives, ..) este post solamente es una pincelada de todo lo que podemos hacer utilizando este framework. En el siguiente post completaremos este proyecto a\u00f1adiendo funcionalidades como A\u00f1adir, Eliminar elemento y Paginar los mismos. Tambi\u00e9n como poder utilizar la API Rest en lugar de CSOM.<\/p>\n<p>Este ejemplo lo pode\u00eds descargar desde el siguiente <a href=\"http:\/\/sdrv.ms\/1gybn9Y\" target=\"_blank\">enlace<\/a>.<\/p>\n<p><strong>Referencias<\/strong><br \/>\n<a href=\"http:\/\/angularjs.org\/\" target=\"_blank\">http:\/\/angularjs.org\/<\/a><br \/>\n<a href=\"http:\/\/pablolazarodev.blogspot.com.es\/2013\/05\/que-es-angularjs-una-breve-introduccion.html\" target=\"_blank\">\u00bfQu\u00e9 es AngularJS?<\/a><br \/>\n<a href=\"http:\/\/www.amazon.com\/s\/?url=search-alias=aps&amp;tag=iteb0b-20&amp;link_code=wql&amp;_encoding=UTF-8&amp;field-keywords=978-1-44934-485-6\" target=\"_blank\">AngularJS by Brad Green and Shyam Seshadr<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Siguiendo con la serie de post en las que introduc\u00edamos diversos frameworks JavaScript en nuestros desarrollos de SharePoint (Kendo UI, Ext JS o Mustache) en este post voy a dar una introducci\u00f3n a Angular, quizas el framework que m\u00e1s est\u00e1 &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,11],"tags":[35,19,26],"class_list":["post-1118","post","type-post","status-publish","format-standard","hentry","category-app","category-sharepoint-2013","tag-apps","tag-javascript","tag-sharepoint"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I - Desarrollando sobre SharePoint<\/title>\n<meta name=\"description\" content=\"En este post vamos a introducir el framework AngularJS dentro de nuestros desarrollos en SharePoint, ver las ventajas que podemos obtener y como aplicarlas.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"En este post vamos a introducir el framework AngularJS dentro de nuestros desarrollos en SharePoint, ver las ventajas que podemos obtener y como aplicarlas.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I\",\"datePublished\":\"2014-01-07T11:00:01+00:00\",\"dateModified\":\"2014-01-07T11:08:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/\"},\"wordCount\":1100,\"commentCount\":1,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngular2.png\",\"keywords\":[\"apps\",\"JavaScript\",\"sharepoint\"],\"articleSection\":[\"APP\",\"sharepoint 2013\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/\",\"name\":\"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngular2.png\",\"datePublished\":\"2014-01-07T11:00:01+00:00\",\"dateModified\":\"2014-01-07T11:08:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"En este post vamos a introducir el framework AngularJS dentro de nuestros desarrollos en SharePoint, ver las ventajas que podemos obtener y como aplicarlas.\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngular2.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngular2.png\",\"width\":778,\"height\":507},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I - Desarrollando sobre SharePoint","description":"En este post vamos a introducir el framework AngularJS dentro de nuestros desarrollos en SharePoint, ver las ventajas que podemos obtener y como aplicarlas.","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:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/","twitter_card":"summary_large_image","twitter_title":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I - Desarrollando sobre SharePoint","twitter_description":"En este post vamos a introducir el framework AngularJS dentro de nuestros desarrollos en SharePoint, ver las ventajas que podemos obtener y como aplicarlas.","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I","datePublished":"2014-01-07T11:00:01+00:00","dateModified":"2014-01-07T11:08:42+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/"},"wordCount":1100,"commentCount":1,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png","keywords":["apps","JavaScript","sharepoint"],"articleSection":["APP","sharepoint 2013"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/","name":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte I - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png","datePublished":"2014-01-07T11:00:01+00:00","dateModified":"2014-01-07T11:08:42+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"En este post vamos a introducir el framework AngularJS dentro de nuestros desarrollos en SharePoint, ver las ventajas que podemos obtener y como aplicarlas.","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngular2.png","width":778,"height":507},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=1118"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1118\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}