Я пытаюсь создать свою собственную библиотеку компонентов для другого CSS-фреймворка.Поэтому я изучил исходный код Angular Material в качестве примера.И затем я наткнулся на эту строку:
https://github.com/angular/material2/blob/2a086ce4751d71db8cfb85a33e2ca702f02ce1c0/src/lib/button/button.ts#L73
@Component({
moduleId: module.id,
selector: `button[mat-button], button[mat-raised-button], button[mat-icon-button],
button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],
button[mat-flat-button]`,
exportAs: 'matButton',
host: {
'[disabled]': 'disabled || null', // This line!
'[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
},
templateUrl: 'button.html',
styleUrls: ['button.css'],
inputs: ['disabled', 'disableRipple', 'color'],
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class MatButton extends _MatButtonMixinBase {
...
}
Я просто хочу подтвердить свое понимание, разве линия, которую я выделил, не должна содержать || null
часть?
Мое понимание таково: этот компонент связан с HTMLButtonElement
, который имеет свое собственное свойство disabled
.Логическое значение может быть просто передано элементу.
Любой ответ приветствуется.(Особенно Кара, так как именно ты ввел эту строчку: P)