{"id":1153,"date":"2014-01-14T11:00:23","date_gmt":"2014-01-14T10:00:23","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1153"},"modified":"2014-06-30T11:26:12","modified_gmt":"2014-06-30T10:26:12","slug":"sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/","title":{"rendered":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte II"},"content":{"rendered":"<p>En el anterior <a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/2014\/01\/07\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte\/\" target=\"_blank\">post <\/a>vimos c\u00f3mo podemos consultar una lista de SharePoint dentro de un proyecto de AngularJS, nos iniciamos en la programaci\u00f3n de este peculiar FrameWork y ahora vamos a completar el anterior ejemplo, a\u00f1adi\u00e9ndole m\u00e1s funcionalidad como son operaciones CRUD sobre la lista de SharePoint y alguna que otra \u00abmagia\u00bb que nos proporciona AngularJS que nos hace la vida un poco m\u00e1s sencilla. <!--more--><br \/>\nPara empezar con el desarrollo, en primer lugar, vamos a poder a\u00f1adir m\u00e1s elementos a nuestra lista de SharePoint. Por un lado nos vamos a la p\u00e1gina HTML y le a\u00f1adimos un Texto y un bot\u00f3n. Algo como el siguiente c\u00f3digo HTML:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n  &lt;input type=&quot;text&quot; ng-model=&quot;todoText&quot;  size=&quot;30&quot; placeholder=&quot;A\u00f1adir nuevo proposito &quot; \/&gt;\r\n  &lt;input class=&quot;btn-primary&quot; type=&quot;submit&quot; value=&quot;A\u00f1adir&quot; ng-click=&quot;addTask($event)&quot; \/&gt;\r\n<\/pre>\n<p>Aunque parezca un poco simple este HTML tiene su \u00abgracia\u00bb. Si miramos la primera linea, hemos marcado este campo como un campo de nuestro modelo llamada \u00abtodoText\u00bb de forma que posteriormente podemos acceder a su valor de una forma muy simple. La segunda linea indicamos que al hacer un click le asignamos nuestro evento addTask.<\/p>\n<p>Una vez tenemos modificada la estructura del HTML ahora vamos a a\u00f1adir la funcionalidad dentro de las clases JavaScript. Si record\u00e1is, ten\u00edamos implementado un servicio SharePoint que es el encargado de comunicar SharePoint con Angular. En un desarrollo profesional y no en una \u00abDemo\u00bb, lo que buscaremos es tener este servicio lo m\u00e1s completo y abstracto posible para poder reutilizarlo en todos los proyectos.<br \/>\nEn este ejemplo a\u00f1adiremos a nuestro servicio una funci\u00f3n AddTask de la siguiente forma:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nthis.addTask = function ($scope, listTitle) {\r\n        var deferred = $q.defer();\r\n\r\n        if ($scope.todoText === &quot;&quot;) {\r\n            deferred.reject('Por favor a\u00f1ade un titulo a tu prop\u00f3sito');\r\n            return deferred.promise;\r\n        }\r\n        var web = context.get_web();\r\n        context.load(web);\r\n        var list = web.get_lists().getByTitle(listTitle);\r\n\r\n        \/\/ create the ListItemInformational object\r\n        var listItemInfo = new SP.ListItemCreationInformation();\r\n        var listItem = list.addItem(listItemInfo);\r\n        listItem.set_item('Title', $scope.todoText);\r\n        listItem.update();\r\n\r\n        context.executeQueryAsync(\r\n            Function.createDelegate(this, function () {\r\n                $scope.$apply(function () {\r\n                    var id = listItem.get_id();\r\n                    $scope.todos.push({ text: $scope.todoText, done: false, id: id });\r\n                    $scope.todoText = '';\r\n                });\r\n            }),\r\n            Function.createDelegate(this, function () {\r\n                $scope.$apply(function (sender, args) {\r\n                    deferred.reject('Request failed. ' + args.get_message() + '\\n' + args.get_stackTrace());\r\n                });\r\n            })\r\n        );\r\n\r\n        return deferred.promise;\r\n    };\r\n<\/pre>\n<p>Esta parte no tiene mucho misterio ya que es algo que, m\u00e1s o menos, es nuestro d\u00eda a d\u00eda no? \ud83d\ude42 Ahora bien, lo siguiente que tenemos que hacer es invocar desde nuestro App Angular estos datos del servicio<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n $scope.addTask = function ($event) {\r\n        $event.preventDefault();\r\n        var promise = $SharePointJSOMService.addTask($scope, 'Propositos');\r\n        promise.then(function (message) {\r\n            alert(message);\r\n        }, function (reason) {\r\n            alert(reason);\r\n        });\r\n    };\r\n<\/pre>\n<p>Si esto lo ejecutamos, observamos que adem\u00e1s de insertar el elemento en la lista autom\u00e1ticamente este valor esta reflejado en nuestra vista de buenos prop\u00f3sitos y adem\u00e1s este refresco es casi trasparente para el usuario a una velocidad muy r\u00e1pida (esto es una de las grandes ventajas de AngularJS).<br \/>\nEl resultado seria el siguiente:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1156\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png\" alt=\"AppAngularparte2\" width=\"348\" height=\"264\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png 348w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2-300x227.png 300w\" sizes=\"auto, (max-width: 348px) 100vw, 348px\" \/><\/a><\/p>\n<h2>Particularidades de Angular<\/h2>\n<p>Para completar el ejemplo, vamos a ver la potencia que tiene Angular. Para ello, a nuestro desarrollo le vamos a a\u00f1adir la posibilidad de poder filtrar sobre los datos que estamos visualizando. Angular incluye una funci\u00f3n Filter que con tan solamente ponerlo en los lugares en lo que lo queremos hacer los filtros nos aplica los filtros de forma autom\u00e1tica y lo mejor de todo es que no tenemos que introducir ninguna linea de JavaScript.<br \/>\nVamos a ver como podemos hacerlo en nuestro desarrollo.<\/p>\n<p>Para empezar a\u00f1adimos en input de la misma forma que hemos realizado anteriormente:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n     &lt;input type=&quot;text&quot; ng-model=&quot;search&quot; class=&quot;search-query&quot; placeholder=&quot;Search&quot;&gt;&lt;br \/&gt;\r\n<\/pre>\n<p>Ahora bien, en el HTML donde indicamos que nos muestre los datos, vamos a a\u00f1adir una sentencia Filter y que filtre por el valor que tiene el campo del modelo llamado \u00absearch\u00bb. Para ello introducimos el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n     &lt;li ng-repeat=&quot;todo in todos | filter:search&quot;&gt;\r\n<\/pre>\n<p>Es decir, en la propia vista es la que se encarga de mostrar o no mostrar un dato con lo cual el renderizado es muy r\u00e1pido. Esto es una de las ventajas pero otra de las grandes ventajas es que no tenemos que comunicarnos con el servidor, con lo cual evitamos realizar llamadas de informaci\u00f3n que ya tenemos y por otro lado, en el lado del cliente tampoco modificamos ning\u00fan valor del DOM.<br \/>\nEl resultado ser\u00eda algo semejante a esto:<br \/>\n<a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte22.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1160\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte22.png\" alt=\"AppAngularparte22\" width=\"386\" height=\"300\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte22.png 386w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte22-300x233.png 300w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><\/a><\/p>\n<p>El ejemplo completo lo pod\u00e9is descargar desde el siguiente <a href=\"http:\/\/sdrv.ms\/1afXOY3\" target=\"_blank\">link<\/a><\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Una de las grandes preguntas\/debates que se plantean es que si tenemos muchos frameworks JavaScript, \u00bfcu\u00e1l es el mejor? o \u00bfcu\u00e1l me aconsejas bajo tu punto de visa?. Yo creo que no hay ninguna contestaci\u00f3n posible, ya que existen muchas variables. La primera, qu\u00e9 tipo de proyecto vas a realizar, qu\u00e9 requisitos vas a necesitar y con qu\u00e9 otras librerias lo quieres incluir. Angular es un framework muy completo pero como ventaja o inconveniente no puedes decir: \u00abvoy a usar Angular pero solo para los Templates\u00bb; es como \u00abme voy a comprar un Ferrari pero solo voy a ir a 30 Km\/hora\u00bb. La conveniencia de un framework u otro, al final es que agilice tu desarrollo, si no lo hace, mejor no utilizarlo.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.encamina.com\/analisis-de-salud-de-tu-sharepoint\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1319 size-large\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/an\u00e1lisis-de-la-salud-banner-derecha1-1024x204.png\" alt=\"an\u00e1lisis-de-la-salud-banner-derecha\" width=\"1024\" height=\"204\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/an\u00e1lisis-de-la-salud-banner-derecha1-1024x204.png 1024w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/an\u00e1lisis-de-la-salud-banner-derecha1-300x60.png 300w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/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>En el anterior post vimos c\u00f3mo podemos consultar una lista de SharePoint dentro de un proyecto de AngularJS, nos iniciamos en la programaci\u00f3n de este peculiar FrameWork y ahora vamos a completar el anterior ejemplo, a\u00f1adi\u00e9ndole m\u00e1s funcionalidad como son &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/\">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":[2,5,11],"tags":[],"class_list":["post-1153","post","type-post","status-publish","format-standard","hentry","category-buenas-practicas","category-desarrollo","category-sharepoint-2013"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte II - Desarrollando sobre SharePoint<\/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:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/\" \/>\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 II - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"En el anterior post vimos c\u00f3mo podemos consultar una lista de SharePoint dentro de un proyecto de AngularJS, nos iniciamos en la programaci\u00f3n de este peculiar FrameWork y ahora vamos a completar el anterior ejemplo, a\u00f1adi\u00e9ndole m\u00e1s funcionalidad como son &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.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-ii\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/\"},\"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 II\",\"datePublished\":\"2014-01-14T10:00:23+00:00\",\"dateModified\":\"2014-06-30T10:26:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/\"},\"wordCount\":974,\"commentCount\":0,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngularparte2.png\",\"articleSection\":[\"buenas practicas\",\"desarrollo\",\"sharepoint 2013\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/\",\"name\":\"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte II - 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-ii\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngularparte2.png\",\"datePublished\":\"2014-01-14T10:00:23+00:00\",\"dateModified\":\"2014-06-30T10:26:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngularparte2.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2014\\\/01\\\/AppAngularparte2.png\",\"width\":348,\"height\":264},{\"@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 II - Desarrollando sobre SharePoint","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-ii\/","twitter_card":"summary_large_image","twitter_title":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte II - Desarrollando sobre SharePoint","twitter_description":"En el anterior post vimos c\u00f3mo podemos consultar una lista de SharePoint dentro de un proyecto de AngularJS, nos iniciamos en la programaci\u00f3n de este peculiar FrameWork y ahora vamos a completar el anterior ejemplo, a\u00f1adi\u00e9ndole m\u00e1s funcionalidad como son &hellip; Continue reading &rarr;","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.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-ii\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/"},"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 II","datePublished":"2014-01-14T10:00:23+00:00","dateModified":"2014-06-30T10:26:12+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/"},"wordCount":974,"commentCount":0,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png","articleSection":["buenas practicas","desarrollo","sharepoint 2013"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/","name":"[SharePoint 2013] Introducci\u00f3n a AngularJS en desarrollo de Apps Parte II - 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-ii\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png","datePublished":"2014-01-14T10:00:23+00:00","dateModified":"2014-06-30T10:26:12+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-introduccion-angularjs-en-desarrollo-de-apps-parte-ii\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2014\/01\/AppAngularparte2.png","width":348,"height":264},{"@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\/1153","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=1153"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1153\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}