要从另一个指令中获取主指令实例的引用,可以使用Angular的依赖注入功能。以下是一个使用依赖注入的示例解决方法:
import { Injectable } from '@angular/core';
@Injectable()
export class MainDirectiveService {
public mainDirectiveInstance: MainDirective;
}
import { Directive } from '@angular/core';
import { MainDirectiveService } from './main-directive.service';
@Directive({
selector: '[mainDirective]'
})
export class MainDirective {
constructor(private mainDirectiveService: MainDirectiveService) {
this.mainDirectiveService.mainDirectiveInstance = this;
}
}
MainDirectiveService
服务,并使用依赖注入来获取主指令实例的引用。import { Directive } from '@angular/core';
import { MainDirectiveService } from './main-directive.service';
@Directive({
selector: '[anotherDirective]'
})
export class AnotherDirective {
constructor(private mainDirectiveService: MainDirectiveService) {
const mainDirectiveInstance = this.mainDirectiveService.mainDirectiveInstance;
// 使用主指令实例的引用进行操作
}
}
通过这种方式,可以在另一个指令中获取到主指令实例的引用,并对其进行操作。