Угловое 12 @Директивное значение для мата-Флажок [установлен] не применяется

#angular #angular-material #angular-directive

#угловой #угловой материал #угловая директива

Вопрос:

У меня есть Директива, применяемая к Mat-Checkbox

 @Directive({  selector: 'mat-checkbox[row-selection]',  host: {  '(click)': '$event.stopPropagation()',  '(change)': 'selectHandler()',  '[checked]': 'isSelected()',  }, }) export class TableRowSelectionDirectivelt;Tgt; {  @Input() row: T;   private _selectionModel: SelectionModellt;Tgt;;   constructor(private _selectionService: TableSelectionModelServicelt;Tgt;) {  this._selectionModel = _selectionService.selectionModel;  }   selectHandler(): void {  this._selectionModel.toggle(this.row);  this._selectionService.setSelectedRows(this._selectionModel.selected);  }   isSelected(): boolean {  return this._selectionModel.isSelected(this.row);  } }  

Вот разметка:

 ... lt;td mat-cell *matCellDef="let row"gt;  lt;mat-checkbox row-selection [row]="row"gt;lt;/mat-checkboxgt; lt;/tdgt; ...  

Все работает так, как ожидалось, за исключением [checked] . Я убедился, что isSelected() это срабатывает должным образом и возвращает правильное значение ( true или false ), и когда true оно возвращается, mat-checkbox оно никогда не проверяется.

Я также пытался использовать @HostBinding() безрезультатно. То же поведение, что и при использовании host метаданных.

Разве это невозможно с помощью a @Directive ? Что я здесь упускаю?