Platzi
Platzi

隆Invierte en ti y celebremos! Adquiere un plan Expert o Expert+ a precio especial.

Antes: $349
$259
Currency
Antes: $349
Ahorras: $90
COMIENZA AHORA
Termina en: 13D : 4H : 14M : 15S

Debes iniciar sesi贸n

Para ver esta clase crea una cuenta sin costo o inicia sesi贸n

Curso de Angular 4

Curso de Angular 4

Eduardo Ibarra

Eduardo Ibarra

Property Binding11/80

Property binding es la comunicaci贸n desde HTML hacia TypeScript.

Que bueno es tener conocimiento en otros frameworks, que hacen lo mismo (react, vue) te permite asemejar comportamientos y comprender mas r谩pido.

Hice un ejemplo que en vez de cambiar el valor de listo en el constructor este se modifique en una funci贸n

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Platzi Square';
  a = 3;
  b = 5;
  listo = false;

  constructor() {

  }

  cambiarValor() {
    // Funcion anonima de javascript
    setTimeout(() => {
      this.listo = true;
    }, 3000);
    return this.listo;
  }
}
<button [disabled] = "!cambiarValor()" > Click me</button>

Creo que el ejemplo no es ilustrativo de la teoria
Property Binding: TS <= HTML
Lo que ilustr贸 el ejemplo es que dependiendo del valor de listo cambiaba el HTML y debi贸 ser que dependiendo del valor de una propiedad del control HTML se hiciera un proceso o cambio en TS

Soy nuevo en Angular, y hasta los momentos me esta gustando mucho, espero que cuando se ponga complicado poder adaptarme.

Para los que venimos de ver el curso de Vue JS:
=> Vue JS:
v-bind:disabled=鈥渓isto鈥

=> Angular 4:
[disabled]=鈥渓isto鈥

Me agrada que en este curso te expliquen paso a paso TypeScript, en otros cursos dan por hecho que sabes a que se refieren esas expresiones, que en un momento llegas a pensar que son parte del framework.

Me queda claro el Property Binding. Pero creo que el flujo de valores no es Typescript <= HTML, sigue siendo Typescript => HTML. La diferencia con el String Interpolation es que se maneja el comportamiento de una 鈥減ropiedad鈥 del elemento DOM HTML dependiendo del valor que venga del Typescript.

No se si me expliqu茅. O estoy equivocado.

Saludos

Por ac谩 dejo un link de evernote donde tengo todas las notas hasta este curso. Espero les funcione. Cada ejercicio est谩 comentado evernote angular

Entonces, el property binding nos sirve para ligar la class con las propiedades de los objetos del DOM, y el string interpolation solo nos sirve para pasar datos del class al html.

Otro binding disponible que se puede usar es el del 鈥渟rc鈥 en un tag de imagen

<img [src] = 鈥渧ariableImagenRuta鈥>

Y en el archivo app.component.ts podr铆amos tener algo como esto:

import { Component } from 鈥楡angular/core鈥;

@Component({
selector: 鈥榓pp-root鈥,
templateUrl: 鈥./app.component.html鈥,
styleUrls: [鈥./app.component.css鈥橾
})
export class AppComponent {
title = 鈥榓pp鈥;
variableImagenRuta = 鈥渄ata:image/png;base64,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鈥
}

Aqu铆 m谩s bien y entiendo que el html se modifica seg煤n cambia el c贸digo del componente en Typescript, no que el HTML modifique los modelos de TypeScript. Lo comento porque la descripci贸n dice 鈥淧roperty binding es la comunicaci贸n desde HTML hacia TypeScript.鈥 y se podr铆a entender lo contrario.

buenasc clases

Property binding

Consulta, las propiedades que van entre [] tiene que ser las propiedades html de la etiqueta o pueden ser personalizadas?

Bueno luego de Vue y React veamos ahora el curso de Angularjs

Insertando bindings en el HTML

Insertando bindings en el HTML

Binding hacia una variable del TypeScript

Constructores en TypeScript

Lambdas (Funciones anonimas) en TypeScript

El property binding se refiere a la accion de conectar desde el Html con propiedades o comportamientos que se encuentran en el TypeScript.

Importante tambien notar el concepto del constructor de la clase, como vamos a usarlo y la implementacion de funciones anonimas o Lambdas.

El property binding se refiere a la accion de conectar desde el Html con propiedades o comportamientos que se encuentran en el TypeScript.

Importante tambien notar el concepto del constructor de la clase, como vamos a usarlo y la implementacion de funciones anonimas o Lambdas.

Chicos al hacer los pasos del button disable cuando borro el c贸digo que se nos pide en el video no me carga la pagina alguien sabe porque?
Screen Shot 2018-08-02 at 11.37.31 AM.png

Screen Shot 2018-08-02 at 11.38.11 AM.png

Por ac谩 dejo un link a una explicaci贸n que me parecio bastante buena sobre los conceptos de binding en Angular para el que lo quiera revisar.
https://dzone.com/articles/bindings-in-angular

En mi clase tengo lo siguiente

<<router-outlet>

</router-outlet>>

Que funcionalidad cumple esto

Excelente explicaci贸n

<input type="text" placeholder="escribe tu nombre" [(ngModel)]="nombre" />
  <input type="text" placeholder="escribe tu apellido" [(ngModel)]="apellido" />
  <br />
  Tu nombre completo es {{nombre + ' ' + apellido}}
  <hr />
  <input type="number"  [(ngModel)]="n1" />
  <input type="number"  [(ngModel)]="n2" />
  <br />
  la suma de n1 y n2 es {{n1 + n2}}```

import { Component } from'@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
exportclassAppComponent{
  title = 'Platzi Square';
  a = 3;
  b = 5;
  listo = false;

  constructor() {
	setTimeout(() => {
      this.listo = true;
    }, 3000);
    return this.listo;
  }
  }


Me gusto el ejemplo de Property Binding.

Excelente!

    <button [disabled]="!onDisable" (click)="funtionLog()">
      Hola
    </button>

  funtionLog() {
    console.log("hiciste click!");
  }

Mediante property binding puede existir comunicaci贸n de HTML a TS. En este caso se deshabilitar el bot贸n click y enviamos la variable 鈥渓isto鈥

<button [disabled]="!listo"> Click me </button>

Del lado del Componente recibiremos la variable en un constructor y cambiar谩 a 鈥渢rue鈥 la variable despu茅s de 3 seg:

listo = false;

  constructor(){
    setTimeout(() => {
      this.listo = true;
    }, 3000)
  }
  • Property Binding: TypeScript <= HTML : [ ]
    o Este tipo, nos permite comunicar c贸digo de nuestro HTML a TypeScript, es decir, podemos modificar las propiedades de un elemento desde HTML con el c贸digo de TypeScript. Ejemplo: <Button [disabled]=鈥漹ariableBoolean鈥> Hello! </Button> . Dentro de los corchetes ira la propiedad que queramos manipular, y el valor de este ser谩 el c贸digo TypeScript que tendr谩 que pasar para ejecutarse.

Les comparto mi ejercicio:

export class AppComponent {
  title = 'PlatziSquare';
  nNum1 = 1;
  nNum2 =3;
  bBtnDisable=false;

  constructor(){
    setTimeout(() => {
      if(confirm("驴Quieres cambiar el estado del bot贸n?")){
        this.bBtnDisable = true;
        alert("Se ha cambiado el estado");
      }
    }, 5000);
  }
}


  <h2>String interpolation</h2>
  <h3>Se pueden hacer operaciones: {{nNum1 + nNum2 }}</h3>
  <p>Here are some links to help you get started:</p>

  <hr>
  <h2>Property Binding</h2>
  <p>Se pueden agregar Properties binding desde html</p>
  <button [disabled]=true>Click me!</button><br>
  <button [disabled]=false>Click me!</button>
  <p> O desde una variable declarada en la declaraci贸n del componente:</p>
  <button [disabled]=bBtnDisable>Click me from component {{bBtnDisable}}</button><br>
  <button [disabled]=!bBtnDisable>Click me from component !{{bBtnDisable}} </button>
  <hr>

the lambda function works but I鈥檇 like to say that鈥檚 not from typescript, but from javascript

Property Binding: De esta forma, podemos hacer que nuestro HTML se modifique seg煤n lo que ocurra en nuestro fichero de TypeScript.

pasando el limpio lo que permite bindear el html con el TS es definir los corchetes a la propiedad del html. es asi?

**鈥淗tmlModule鈥 ** ya es obsoleto鈥

de que manera se soluciona esto?

No me qued贸 nada claro si existe alguna diferencia entre usar esto:

<input disabled='{{miVariable}}' />

o esto

<input [disabled]='miVariable' />

Cual es la diferencia entre las variables declaradas dentro del constructor y las que son declaradas fuera del constructor ?

Saludos, entiendo que Angular4 es del lado del cliente. Sin embargo si quiero unirlo a Rails o Django, necesito habilitar CORS del lado de mi Backend?
O existe una manera que manejar Angular4 y Rails en el mismo dominio, mismo puerto 80.

No se cual es el fallo pero en cuanto pongo el [disable] la web deja de verse.

Ayuda!!! Chicos me est谩 saliendo el error:

Failed to compile.

./src/app/app.component.ts
Module not found: Error: Can鈥檛 resolve 鈥榯imers鈥 in 鈥楩:\git\cursosPlatzi\Angular 4\platzigram\src\app鈥

Les muestro mi app.component.ts

import { Component } from '@angular/core';
import { setTimeout } from 'timers';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'PlatziSquare';

  listo = false;


  constructor() {
    setTimeout(() => {
      this.listo = true;
    }, 3000)
  }
}```

Que bueno es tener conocimiento en otros frameworks, que hacen lo mismo (react, vue) te permite asemejar comportamientos y comprender mas r谩pido.

Hice un ejemplo que en vez de cambiar el valor de listo en el constructor este se modifique en una funci贸n

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Platzi Square';
  a = 3;
  b = 5;
  listo = false;

  constructor() {

  }

  cambiarValor() {
    // Funcion anonima de javascript
    setTimeout(() => {
      this.listo = true;
    }, 3000);
    return this.listo;
  }
}
<button [disabled] = "!cambiarValor()" > Click me</button>

Creo que el ejemplo no es ilustrativo de la teoria
Property Binding: TS <= HTML
Lo que ilustr贸 el ejemplo es que dependiendo del valor de listo cambiaba el HTML y debi贸 ser que dependiendo del valor de una propiedad del control HTML se hiciera un proceso o cambio en TS

Soy nuevo en Angular, y hasta los momentos me esta gustando mucho, espero que cuando se ponga complicado poder adaptarme.

Para los que venimos de ver el curso de Vue JS:
=> Vue JS:
v-bind:disabled=鈥渓isto鈥

=> Angular 4:
[disabled]=鈥渓isto鈥

Me agrada que en este curso te expliquen paso a paso TypeScript, en otros cursos dan por hecho que sabes a que se refieren esas expresiones, que en un momento llegas a pensar que son parte del framework.

Me queda claro el Property Binding. Pero creo que el flujo de valores no es Typescript <= HTML, sigue siendo Typescript => HTML. La diferencia con el String Interpolation es que se maneja el comportamiento de una 鈥減ropiedad鈥 del elemento DOM HTML dependiendo del valor que venga del Typescript.

No se si me expliqu茅. O estoy equivocado.

Saludos

Por ac谩 dejo un link de evernote donde tengo todas las notas hasta este curso. Espero les funcione. Cada ejercicio est谩 comentado evernote angular

Entonces, el property binding nos sirve para ligar la class con las propiedades de los objetos del DOM, y el string interpolation solo nos sirve para pasar datos del class al html.

Otro binding disponible que se puede usar es el del 鈥渟rc鈥 en un tag de imagen

<img [src] = 鈥渧ariableImagenRuta鈥>

Y en el archivo app.component.ts podr铆amos tener algo como esto:

import { Component } from 鈥楡angular/core鈥;

@Component({
selector: 鈥榓pp-root鈥,
templateUrl: 鈥./app.component.html鈥,
styleUrls: [鈥./app.component.css鈥橾
})
export class AppComponent {
title = 鈥榓pp鈥;
variableImagenRuta = 鈥渄ata:image/png;base64,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鈥
}

Aqu铆 m谩s bien y entiendo que el html se modifica seg煤n cambia el c贸digo del componente en Typescript, no que el HTML modifique los modelos de TypeScript. Lo comento porque la descripci贸n dice 鈥淧roperty binding es la comunicaci贸n desde HTML hacia TypeScript.鈥 y se podr铆a entender lo contrario.

buenasc clases

Property binding

Consulta, las propiedades que van entre [] tiene que ser las propiedades html de la etiqueta o pueden ser personalizadas?

Bueno luego de Vue y React veamos ahora el curso de Angularjs

Insertando bindings en el HTML

Insertando bindings en el HTML

Binding hacia una variable del TypeScript

Constructores en TypeScript

Lambdas (Funciones anonimas) en TypeScript

El property binding se refiere a la accion de conectar desde el Html con propiedades o comportamientos que se encuentran en el TypeScript.

Importante tambien notar el concepto del constructor de la clase, como vamos a usarlo y la implementacion de funciones anonimas o Lambdas.

El property binding se refiere a la accion de conectar desde el Html con propiedades o comportamientos que se encuentran en el TypeScript.

Importante tambien notar el concepto del constructor de la clase, como vamos a usarlo y la implementacion de funciones anonimas o Lambdas.

Chicos al hacer los pasos del button disable cuando borro el c贸digo que se nos pide en el video no me carga la pagina alguien sabe porque?
Screen Shot 2018-08-02 at 11.37.31 AM.png

Screen Shot 2018-08-02 at 11.38.11 AM.png

Por ac谩 dejo un link a una explicaci贸n que me parecio bastante buena sobre los conceptos de binding en Angular para el que lo quiera revisar.
https://dzone.com/articles/bindings-in-angular

En mi clase tengo lo siguiente

<<router-outlet>

</router-outlet>>

Que funcionalidad cumple esto

Excelente explicaci贸n

<input type="text" placeholder="escribe tu nombre" [(ngModel)]="nombre" />
  <input type="text" placeholder="escribe tu apellido" [(ngModel)]="apellido" />
  <br />
  Tu nombre completo es {{nombre + ' ' + apellido}}
  <hr />
  <input type="number"  [(ngModel)]="n1" />
  <input type="number"  [(ngModel)]="n2" />
  <br />
  la suma de n1 y n2 es {{n1 + n2}}```

import { Component } from'@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
exportclassAppComponent{
  title = 'Platzi Square';
  a = 3;
  b = 5;
  listo = false;

  constructor() {
	setTimeout(() => {
      this.listo = true;
    }, 3000);
    return this.listo;
  }
  }


Me gusto el ejemplo de Property Binding.

Excelente!

    <button [disabled]="!onDisable" (click)="funtionLog()">
      Hola
    </button>

  funtionLog() {
    console.log("hiciste click!");
  }

Mediante property binding puede existir comunicaci贸n de HTML a TS. En este caso se deshabilitar el bot贸n click y enviamos la variable 鈥渓isto鈥

<button [disabled]="!listo"> Click me </button>

Del lado del Componente recibiremos la variable en un constructor y cambiar谩 a 鈥渢rue鈥 la variable despu茅s de 3 seg:

listo = false;

  constructor(){
    setTimeout(() => {
      this.listo = true;
    }, 3000)
  }
  • Property Binding: TypeScript <= HTML : [ ]
    o Este tipo, nos permite comunicar c贸digo de nuestro HTML a TypeScript, es decir, podemos modificar las propiedades de un elemento desde HTML con el c贸digo de TypeScript. Ejemplo: <Button [disabled]=鈥漹ariableBoolean鈥> Hello! </Button> . Dentro de los corchetes ira la propiedad que queramos manipular, y el valor de este ser谩 el c贸digo TypeScript que tendr谩 que pasar para ejecutarse.

Les comparto mi ejercicio:

export class AppComponent {
  title = 'PlatziSquare';
  nNum1 = 1;
  nNum2 =3;
  bBtnDisable=false;

  constructor(){
    setTimeout(() => {
      if(confirm("驴Quieres cambiar el estado del bot贸n?")){
        this.bBtnDisable = true;
        alert("Se ha cambiado el estado");
      }
    }, 5000);
  }
}


  <h2>String interpolation</h2>
  <h3>Se pueden hacer operaciones: {{nNum1 + nNum2 }}</h3>
  <p>Here are some links to help you get started:</p>

  <hr>
  <h2>Property Binding</h2>
  <p>Se pueden agregar Properties binding desde html</p>
  <button [disabled]=true>Click me!</button><br>
  <button [disabled]=false>Click me!</button>
  <p> O desde una variable declarada en la declaraci贸n del componente:</p>
  <button [disabled]=bBtnDisable>Click me from component {{bBtnDisable}}</button><br>
  <button [disabled]=!bBtnDisable>Click me from component !{{bBtnDisable}} </button>
  <hr>

the lambda function works but I鈥檇 like to say that鈥檚 not from typescript, but from javascript

Property Binding: De esta forma, podemos hacer que nuestro HTML se modifique seg煤n lo que ocurra en nuestro fichero de TypeScript.

pasando el limpio lo que permite bindear el html con el TS es definir los corchetes a la propiedad del html. es asi?

**鈥淗tmlModule鈥 ** ya es obsoleto鈥

de que manera se soluciona esto?

No me qued贸 nada claro si existe alguna diferencia entre usar esto:

<input disabled='{{miVariable}}' />

o esto

<input [disabled]='miVariable' />

Cual es la diferencia entre las variables declaradas dentro del constructor y las que son declaradas fuera del constructor ?

Saludos, entiendo que Angular4 es del lado del cliente. Sin embargo si quiero unirlo a Rails o Django, necesito habilitar CORS del lado de mi Backend?
O existe una manera que manejar Angular4 y Rails en el mismo dominio, mismo puerto 80.

No se cual es el fallo pero en cuanto pongo el [disable] la web deja de verse.

Ayuda!!! Chicos me est谩 saliendo el error:

Failed to compile.

./src/app/app.component.ts
Module not found: Error: Can鈥檛 resolve 鈥榯imers鈥 in 鈥楩:\git\cursosPlatzi\Angular 4\platzigram\src\app鈥

Les muestro mi app.component.ts

import { Component } from '@angular/core';
import { setTimeout } from 'timers';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'PlatziSquare';

  listo = false;


  constructor() {
    setTimeout(() => {
      this.listo = true;
    }, 3000)
  }
}```