0
如何在自定義屬性指令中使用NgClass來更改主要元素CSS類?Angular 2.4.0目標NgClass屬性指令的內部
如果我有這樣的事情:
@Component({
selector: 'my-app',
template: `
<div>
<div class="box" myDir [ngClass]="{'blue': blue, 'red': red}"> </div>
</div>
`,
});
然後,該MYDIR指令裏面,像這樣:
import { Directive, HostListener, OnInit } from '@angular/core';
@Directive({
selector: '[myDir]'
})
export class MyDirDirective {
blue: boolean;
red: boolean;
constructor() {
}
ngOnInit() {
}
@HostListener('mouseenter', ['$event'])
onMouseEnter(event) {
event.preventDefault();
event.stopPropagation();
this.blue = true;
this.red = false;
console.log('mouseenter');
}
@HostListener('mouseleave', ['$event'])
onMouseLeave(event) {
event.preventDefault();
event.stopPropagation();
this.blue = true;
this.red = false;
console.log('mouseleave');
}
難道我沒有訪問範圍中,藍色和紅色居住在?如果我創建一個切換,我可以用一個按鈕來更新這些值,但似乎並不能從指令本身中完成。這是一個準確的觀察,我應該這樣做,還是有一種替代方案,我沒有在文檔中看到?
感謝您的初始,然後更新的答案!您的初始響應實際上讓我回到了我認識到我的錯誤的文檔,並且比上面的文章稍微深入一點,使用.emit()將它們彼此解耦。 – katyusha
很高興幫助您,您可以接受答案,乾杯! –