null
lo rimuove:
[attr.checked]="value ? '' : null"
o
[attr.checked]="value ? 'checked' : null"
Suggerimento:
Attributo vs proprietà
Quando l'elemento HTML in cui si aggiunge questa associazione non ha una proprietà con il nome utilizzato nell'associazione ( checked
in questo caso) e anche nessun componente angolare o direttiva viene applicato allo stesso elemento che ha un @Input() checked;
, quindi [xxx]="..."
non può essere utilizzato.
Vedi anche Qual è la differenza tra proprietà e attributi in HTML?
Cosa legare quando non esiste tale proprietà
Le alternative sono [style.xxx]="..."
, [attr.xxx]="..."
, [class.xxx]="..."
a seconda di ciò che si tenta di realizzare.
Perché <input>
ha solo un checked
attributo, ma nessuna checked
proprietà [attr.checked]="..."
è la strada giusta per questo caso specifico.
Gli attributi possono gestire solo valori di stringa
Una trappola comune è anche che per i [attr.xxx]="..."
bind il valore ( ...
) è sempre rigoroso. Solo le proprietà @Input()
possono ricevere altri tipi di valore come booleano, numero, oggetto, ...
La maggior parte delle proprietà e degli attributi degli elementi sono collegati e hanno lo stesso nome.
Connessione proprietà-attributo
Se associata all'attributo, la proprietà riceve anche solo il valore specificato dall'attributo.
Se associata alla proprietà, la proprietà riceve il valore associato ad essa (booleano, numero, oggetto, ...) e l'attributo di nuovo il valore stringa.
Due casi in cui i nomi degli attributi e delle proprietà non corrispondono.
Da allora l'angolo è stato modificato e conosce questi casi speciali e li gestisce in modo da poterli associare <label [for]="
anche se non esiste tale proprietà (lo stesso per colspan
)