null
menghapusnya:
[attr.checked]="value ? '' : null"
atau
[attr.checked]="value ? 'checked' : null"
Petunjuk:
Atribut vs properti
Ketika elemen HTML tempat Anda menambahkan pengikatan ini tidak memiliki properti dengan nama yang digunakan dalam pengikatan ( checked
dalam hal ini) dan juga tidak ada komponen atau arahan Angular yang diterapkan ke elemen yang sama yang memiliki @Input() checked;
, maka [xxx]="..."
tidak dapat digunakan.
Lihat juga Apa perbedaan antara properti dan atribut dalam HTML?
Apa yang harus mengikat ketika tidak ada properti seperti itu
Alternatif yang [style.xxx]="..."
, [attr.xxx]="..."
, [class.xxx]="..."
tergantung pada apa yang Anda mencoba untuk mencapai.
Karena <input>
hanya memiliki checked
atribut, tetapi tidak ada checked
properti [attr.checked]="..."
adalah cara yang tepat untuk kasus khusus ini.
Atribut hanya dapat menangani nilai string
Jebakan yang umum adalah juga bahwa untuk [attr.xxx]="..."
binding nilai ( ...
) selalu berstruktur. Hanya properti dan @Input()
s yang dapat menerima tipe nilai lain seperti boolean, angka, objek, ...
Sebagian besar properti dan atribut elemen terhubung dan memiliki nama yang sama.
Koneksi atribut-properti
Ketika terikat ke atribut, properti juga hanya menerima nilai yang diikat dari atribut.
Ketika diikat ke properti, properti menerima nilai yang terikat padanya (boolean, angka, objek, ...) dan atributnya lagi nilai yang dirangkai.
Dua kasus di mana nama atribut dan properti tidak cocok.
Sudut telah diubah sejak saat itu dan tahu tentang kasus khusus ini dan menanganinya sehingga Anda dapat mengikat <label [for]="
meskipun tidak ada properti seperti itu (sama untuk colspan
)