null видаляє його:
[attr.checked]="value ? '' : null"
або
[attr.checked]="value ? 'checked' : null"
Підказка:
Атрибут vs власності
Коли елемент HTML, куди ви додаєте це прив'язування, не має властивості з іменем, яке використовується у прив'язці ( checkedв даному випадку), а також жоден кутовий компонент чи директива не застосовується до того ж елемента, що має @Input() checked;, тоді [xxx]="..."його не можна використовувати.
Дивіться також Яка різниця між властивостями та атрибутами в HTML?
З чим зв’язати, коли такої власності немає
Альтернативи [style.xxx]="...", [attr.xxx]="...", в [class.xxx]="..."залежності від того, що ви намагаєтеся досягти.
Тому що <input>має лише checkedатрибут, але жодна checkedвластивість не [attr.checked]="..."є правильним для цього конкретного випадку.
Атрибути можуть обробляти лише рядкові значення
Поширений підводний камінь також полягає в тому, що для [attr.xxx]="..."прив'язки значення ( ...) завжди поглиблюється. Тільки властивості і @Input()s можуть отримувати інші типи значень, такі як булева, кількість, об'єкт, ...
Більшість властивостей та атрибутів елементів пов'язані між собою та мають однакову назву.
Зв'язок властивості-атрибута
Прив'язане до атрибута, властивість також отримує лише атрибутизоване значення.
Прив'язавшись до властивості, властивість отримує пов'язане з нею значення (булеве число, число, об'єкт, ...) і атрибут знову закреслене значення.
Два випадки, коли назви атрибутів та властивостей не збігаються.
Кутовий змінено з тих пір і знає про ці особливі випадки та обробляє їх, щоб ви могли прив’язатись, <label [for]="навіть якщо такої властивості не існує (те саме для colspan)