2016-05-20 12 views
11

Ho un componente che definisce una proprietà imageUrl e nel mio modello utilizzo questa proprietà per impostare l'URL di un'immagine. Ho provato questo usando l'interpolazione e usando l'associazione delle proprietà, entrambi funzionano, ma non riesco a trovare alcuna differenza tra i due, o quando utilizzare l'uno sull'altro. Qualcuno sa la differenza?Differenza tra interpolazione e legame di proprietà

<img [src]='imageUrl' > 

<img src= {{ imageUrl }} > 
+2

con la proprietà di legame si imposta l'attributo con il valore esatto della proprietà, ora con l'interpolazione, è possibile mescolare il contenuto dinamico dal tuo modello all'interno della stringa, da qui l'interpolazione (es: 'src =" http:// {{url}} "') –

+0

Sì, come Andre citato legame di proprietà non ti permette di modello/concatenare la stringa esistente deve essere esatto. Ma con l'interpolazione è possibile creare un modello attorno a ciò che si ha. – inoabrian

risposta

17

angolare valuta le tutte le espressioni in doppia parentesi graffe, converte i risultati di espressione alle stringhe, e li concatena con le stringhe letterali vicini. Infine, assegna questo risultato interpolato composito a una proprietà di elemento o direttiva/componente. - da https://angular.io/docs/ts/latest/guide/template-syntax.html#!#interpolation

Il collegamento di proprietà non converte il risultato dell'espressione in una stringa.

Quindi, se è necessario associare qualcosa di diverso da una stringa alla proprietà direttiva/componente, è necessario utilizzare il collegamento delle proprietà.

1

L'interpolazione utilizza {{espressione}} per rendere il valore associato al modello del componente. L'interpolazione è una sintassi speciale che Angular converte in un legame di proprietà

Utente di associazione di proprietà [] per inviare valori dal componente al modello. proprietà Binding: per impostare una proprietà elemento per un valore di dati non stringa, è necessario utilizzare la proprietà vincolante

Esempio:

ci sono invalidanti un bottone legandosi alla proprietà booleana isDisabled.

<button [disabled]='isDisabled'>Try Me</button> 

interpolazione invece di proprietà di associazione, il pulsante sarà sempre disabilitata indipendentemente dagli isDisabled valore della proprietà di classe è vero o falso.

<button disabled='{{isDisabled}}'>Try Me</button> 

forma canonica che è una sintassi alternativa alla parentesi quadra.

<button bind-disabled='isDisabled'>Try Me</button> 
Problemi correlati