【发布时间】:2025-12-04 13:05:02
【问题描述】:
假设我有两个指令:
@Directive({
selector: '[appDirective1]'
})
export class Directive1Directive {
public alone = true;
constructor(private element: ElementRef<HTMLInputElement>) { }
ngOnInit() {
if (this.alone) {
this.element.nativeElement.innerHTML = "I am alone";
} else {
this.element.nativeElement.innerHTML = "I have a friend";
}
}
}
@Directive({
selector: '[appDirective2]'
})
export class Directive2Directive {
constructor() { }
}
如果Directive2 出现在同一元素上,我希望Directive1 改变其行为。例如,它们应该有不同的行为。
<div appDirective1></div>
<div appDirective1 appDirective2></div>
我是否可以在不添加服务以促进通信的情况下执行此操作*?
StackBlitz 示例:https://stackblitz.com/edit/angular-bgqd15
*我想避免为此创建新服务,因为这感觉有点矫枉过正。
【问题讨论】:
标签: angular angular2-directives angular-directive