{"id":2101,"date":"2016-01-19T11:00:50","date_gmt":"2016-01-19T10:00:50","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=2101"},"modified":"2016-01-19T11:34:46","modified_gmt":"2016-01-19T10:34:46","slug":"angular-2-bindings","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/","title":{"rendered":"Angular 2, Conceptos Core: Data Bindings"},"content":{"rendered":"<p>Tras el primer art\u00edculo sobre Angular 2, llega el momento de empezar a conocer los <strong>conceptos cores del framework<\/strong>. En este art\u00edculo, te voy a explicar qu\u00e9 son los Data Bindings, c\u00f3mo los utilizamos y los diferentes tipos que hay. \u00bfEst\u00e1s listo?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2128\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png\" alt=\"Untitled-3\" width=\"425\" height=\"108\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png 425w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3-300x76.png 300w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/p>\n<h2>\u00bfQu\u00e9 son los Data Binding?<\/h2>\n<p><!--more--><\/p>\n<p>Los \u00abData Bingdings\u00bb o enlace de datos es una <strong>t\u00e9cnica general que une una fuente de datos entre el origen de datos y las vista<\/strong>, y se encarga de sincronizarlos. Esto provoca que cada cambio de datos se refleje autom\u00e1ticamente en los elementos que est\u00e1n sincronizados.\u00a0Existen librerias Javascript cuya unica funci\u00f3n es el encargado de los binding entre el \u00abModelo\u00bb y la \u00abVista\u00bb, por ejemplo\u00a0<a href=\"http:\/\/knockoutjs.com\/\" target=\"_blank\">KnockoutJS<\/a>.<\/p>\n<p>En Angular 2, <strong>los databinding son la sincronizaci\u00f3n autom\u00e1tica de los datos<\/strong> entre los componentes del modelo y la vista. La vista es una proyecci\u00f3n del modelo en todo momento. Cuando el modelo cambia, la vista refleja el cambio, y viceversa. Por eso, debes\u00a0conocer c\u00f3mo tratar los datos y su enlace con las vistas.<\/p>\n<p>Partamos del ejemplo que te ense\u00f1\u00e9\u00a0en el anterior <a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/2016\/01\/12\/angular-2-introduccion\/\" target=\"_blank\">art\u00edculo<\/a>\u00a0y vamos a crear una clase \u00abEmpleado\u00bb. Para ello, agregamos una nuevo fichero ts al proyecto:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport  class Employed{\r\n    public name:string;\r\n    public lastName:string;\r\n    public job: string;\r\n    public year:number;\r\n    \r\n    constructor(name:string,lastName:string,job:string,year:number){\r\n        this.name=name;\r\n        this.lastName=lastName;\r\n        this.job=job;\r\n        this.year=year;\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>A continuaci\u00f3n, dentro de la\u00a0clase del Componente, \u00a0crearemos una <strong>variable employed<\/strong> cuyo tipo ser\u00e1 una Array de la Clase empleado creada anteriormente:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport class AppComponent { \r\n public   employed:Array&amp;amp;amp;amp;lt;Employed&amp;amp;amp;amp;gt;;\r\n  \r\n constructor(){\r\n    this.employed.push(new Employed(&quot;Adrian&quot;,&quot;Diaz&quot;,&quot;Sofware Architect&quot;,1981));\r\n    this.employed.push(new Employed(&quot;Alberto&quot;,&quot;Diaz&quot;,&quot;Head of Innovation&quot;,1979));\r\n    this.employed.push( new Employed(&quot;Carlos&quot;,&quot;Lopez&quot;,&quot;Team Leades&quot;,1983));\r\n    this.employed.push(new Employed(&quot;Juan Carlos&quot;,&quot;Martinez&quot;,&quot;Sofware Enginer&quot;,1986));\r\n }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Ahora, <strong>agregamos el html necesario<\/strong> para que se muestren los datos que hay en el componente:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\r\n&amp;amp;amp;lt;H1&amp;amp;amp;gt;Angular 2 by Encamina&amp;amp;amp;lt;\/H1&amp;amp;amp;gt;\r\n\r\nEmployed:\r\n\r\n&lt;ul&gt;\r\n\r\n&lt;li *ngFor=&quot;#employe of employed&quot;&gt;\r\n        {{ employe.lastName }} , {{ employe.name }}\r\n&lt;\/li&gt;\r\n\r\n&lt;\/ul&gt;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Si ejecutas la\u00a0aplicaci\u00f3n, se mostrar\u00e1 la siguiente pantalla:<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2119\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/angular2.jpg\" alt=\"angular2\" width=\"475\" height=\"245\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/angular2.jpg 475w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/angular2-300x155.jpg 300w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/p>\n<h2><\/h2>\n<h2>Sintaxis Html<strong>\u00a0<\/strong><\/h2>\n<p>Una de las cosas que no deja a nadie indiferente es la sintaxis que hay dentro del HTML. Por un lado, est\u00e1n las personas que consideran que extender HTML es una forma de\u00a0mejorar la Web (ya que permite la reutilizaci\u00f3n de componentes y se puede ahorrar diversa funcionalidad). Pero hay otros que no opinan lo mismo y\u00a0piensan que extender el est\u00e1ndar HTML sin seguir ning\u00fan criterio, no es una buena pr\u00e1ctica.<\/p>\n<p>En mi opini\u00f3n, el <strong>extender el HTML es una buena opci\u00f3n,<\/strong> siempre que no tengamos ning\u00fan requisito que lo impida, como por ejemplo la accesibilidad.<\/p>\n<p>De esa sintaxis, tenemos la <strong>etiqueta ngFor<\/strong> que, como habr\u00e1s\u00a0deducido, recorre todos los elementos que hay dentro de la variable. El \u00ab*\u00bb que hay al inicio de la instrucci\u00f3n ngFor indica que\u00a0solamente se muestren los valores en caso de que dicha propiedad no sea nula.<\/p>\n<p>Otra de las caracter\u00edsticas que hay en este html son\u00a0los valores que hay dentro de las llaves o (como se dice de forma coloquial) en los <strong>\u00abmustaches\u00bb<\/strong>. Esto lo que hace es mostrar el valor que tiene la\u00a0variable.<\/p>\n<h2>Tipos de Binding de datos<\/h2>\n<p>Hay <strong>dos tipos de enlaces<\/strong>. Pueden ser \u00abone way\u00bb o de \u00abtwo way\u00bb.<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" src=\"https:\/\/docs.angularjs.org\/img\/One_Way_Data_Binding.png\" alt=\"\" width=\"400\" height=\"255\" \/>One Way<\/h3>\n<p>Hablando claro,\u00a0One Way significa que <strong>el enlace solamente se realiza en una \u00fanica direcci\u00f3n. <\/strong>Es decir, la vista recibe los datos una \u00fanica vez y, aunque se produzca alguna modificaci\u00f3n de los datos, estos no se modifican. La mayor\u00eda de los sistemas de plantillas de datos se unen en una sola direcci\u00f3n: se funden los componentes de la plantilla y modelo juntos en una vista. Despu\u00e9s de producirse la fusi\u00f3n , los cambios en el modelo o secciones relacionadas de la vista no se reflejan autom\u00e1ticamente en la vista. O algo a\u00fan peor, los cambios que el usuario hace a la vista no se reflejan en el modelo. Esto significa que el desarrollador tiene que escribir el c\u00f3digo y se sincroniza constantemente la vista con el modelo y el modelo con la vista.<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"https:\/\/docs.angularjs.org\/img\/Two_Way_Data_Binding.png\" alt=\"\" width=\"400\" height=\"290\" \/>Two Way In<\/h3>\n<p>Este tipo de <strong>binding es de dos v\u00edas y se suele utilizar para los formularios, <\/strong>de\u00a0tal forma que en el momento de actualizar cualquier elemento se actualizan todos los elementos. Pero <strong>en Angular estas plantillas funcionan de una forma diferente<\/strong>. Primero el template (que es el HTML sin compilar junto con etiquetas o directivas adicionales), se compila en el navegador. El paso de compilaci\u00f3n produce una vista en vivo. Cualquier cambio a la vista se refleja inmediatamente en el modelo y cualquier cambio en el modelo se propaga a la vista. En Angular 1 esto era una de sus grandes ventajas. Ahora en la nueva versi\u00f3n, hay\u00a0que indicarlo en la sintaxis. Para hacerlo, debes utilizar el ngModel.<\/p>\n<h2>Two-Way Binding con el ng-Model<\/h2>\n<p>Esta es una de las <strong>novedades<\/strong> que trae Angular. NgModel es una <strong>directiva de Angular 2 cuya finalidad es actualizar los valores que hay en los formularios<\/strong> una vez se realizan cambios. Vamos a ver un ejemplo para entenderlo mejor.<\/p>\n<p>En primer lugar, en el\u00a0componente debemos importar esta directiva de la siguiente forma:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndirectives: &#x5B;formDirectives]\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Para indicar en el html que un determinado elemento del modelo se refresque, tendremos que poner [(ngModel)] y el valor que queremos que se actualice:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{{employe.name}}\r\n&amp;amp;amp;lt;input &#x5B;(ngModel)]=&quot;employe.name&quot;&amp;amp;amp;gt;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Si ahora ejecutamos este c\u00f3digo, ver\u00e1s autom\u00e1ticamente que cada vez que se escribe cualquier valor en el formulario, se modifica el valor en todos los elementos donde se est\u00e1 mostrando este dato (facilitando mucho la vida del desarrollador).<\/p>\n<p>Con este cambio lo que<strong>\u00a0te he\u00a0querido mostrar<\/strong> es:<\/p>\n<ul>\n<li>La flexibilidad que daba Angular 1 con la actualizaci\u00f3n de datos<\/li>\n<li>La mejora de su performance. Ahora\u00a0no est\u00e1 permanentemente actualizando, sino que solamente se notifican los valores del modelo que realmente nos interesan (dejando mucha m\u00e1s responsabilidad al desarrollador).<br \/>\n<strong><br \/>\n<\/strong><\/li>\n<\/ul>\n<h2>Resumen<\/h2>\n<p>En este post, has visto:<\/p>\n<ul>\n<li>C\u00f3mo trabajar con datos dentro de nuestro Componente<\/li>\n<li>La sintaxis que tiene que tener el HTML<\/li>\n<li>Tipos de Data Binding existentes<\/li>\n<\/ul>\n<p>En el pr\u00f3ximo post, te hablar\u00e9 sobre las Routes. \u00bfCon ganas de mi pr\u00f3ximo post? \ud83d\ude1b<\/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>Tras el primer art\u00edculo sobre Angular 2, llega el momento de empezar a conocer los conceptos cores del framework. En este art\u00edculo, te voy a explicar qu\u00e9 son los Data Bindings, c\u00f3mo los utilizamos y los diferentes tipos que hay. &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/\">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":[100,157],"tags":[],"class_list":["post-2101","post","type-post","status-publish","format-standard","hentry","category-javascript-2","category-typescript"],"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>Angular 2, Conceptos Core: Data Bindings - 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\/angular-2-bindings\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Angular 2, Conceptos Core: Data Bindings - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Tras el primer art\u00edculo sobre Angular 2, llega el momento de empezar a conocer los conceptos cores del framework. En este art\u00edculo, te voy a explicar qu\u00e9 son los Data Bindings, c\u00f3mo los utilizamos y los diferentes tipos que hay. &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.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=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"Angular 2, Conceptos Core: Data Bindings\",\"datePublished\":\"2016-01-19T10:00:50+00:00\",\"dateModified\":\"2016-01-19T10:34:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/\"},\"wordCount\":1174,\"commentCount\":0,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/01\\\/Untitled-3.png\",\"articleSection\":[\"javascript\",\"typescript\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/\",\"name\":\"Angular 2, Conceptos Core: Data Bindings - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/01\\\/Untitled-3.png\",\"datePublished\":\"2016-01-19T10:00:50+00:00\",\"dateModified\":\"2016-01-19T10:34:46+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/angular-2-bindings\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/01\\\/Untitled-3.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2016\\\/01\\\/Untitled-3.png\",\"width\":425,\"height\":108},{\"@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":"Angular 2, Conceptos Core: Data Bindings - 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\/angular-2-bindings\/","twitter_card":"summary_large_image","twitter_title":"Angular 2, Conceptos Core: Data Bindings - Desarrollando sobre SharePoint","twitter_description":"Tras el primer art\u00edculo sobre Angular 2, llega el momento de empezar a conocer los conceptos cores del framework. En este art\u00edculo, te voy a explicar qu\u00e9 son los Data Bindings, c\u00f3mo los utilizamos y los diferentes tipos que hay. &hellip; Continue reading &rarr;","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"Angular 2, Conceptos Core: Data Bindings","datePublished":"2016-01-19T10:00:50+00:00","dateModified":"2016-01-19T10:34:46+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/"},"wordCount":1174,"commentCount":0,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png","articleSection":["javascript","typescript"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/","name":"Angular 2, Conceptos Core: Data Bindings - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png","datePublished":"2016-01-19T10:00:50+00:00","dateModified":"2016-01-19T10:34:46+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/angular-2-bindings\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2016\/01\/Untitled-3.png","width":425,"height":108},{"@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\/2101","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=2101"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/2101\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=2101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=2101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=2101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}