我有一个指令可以帮助向各种元素添加切换效果。
export class AlloyToggleDirective {
private toggled = false;
@Input('alloyToggled')
@HostBinding('class.alloy-toggled')
get isToggled() { return this.toggled; }
set isToggled(value: boolean) {
this.toggled = value;
this.alloyToggledChange.emit(this.toggled);
}
@Output() alloyToggledChange: EventEmitter<boolean> = new EventEmitter();
toggle() {
this.toggled = !this.toggled;
}
@HostListener('click')
onclick() {
this.toggled = !this.toggled;
this.alloyToggledChange.emit(this.toggled);
}
}
切换时它工作正常,但初始绑定值被忽略:
<button [alloyToggled]="booleanValue">
HTML 将反映该初始值,但该类仅在以编程方式或通过鼠标切换后应用。@HostBinding
开启时是否有奇怪的交互@Input
?