angular - 多指令选择器 - 查找模板中使用了哪个选择器

标签 angular angular-directive

我的指令有两个选择器 dirAdirNotA。该指令应根据使用的选择器进一步处理。有没有办法确定指令中使用了哪个选择器?

我不希望有多个指令,也不想有一个带参数的指令。我希望有一个带有多个选择器的指令,并根据模板中使用的选择器确定操作过程。

像这样

@Directive({
  selector: '[dirA], [dirNotA]`
})
class DirectiveA implement OnInit {
  ngOnInit() {
    // here we detected which selector was used
    if (dirASelector) {
      ...
    }

  }
}

有什么想法可以在指令本身中获取这些信息吗?

最佳答案

您可以使用继承。

class DirectiveAOrNotA implements OnInit {
// common logic here
}

@Directive({
  selector: '[dirA]`
})
export class DirectiveA extends DirectiveAOrNotA {
// differences here
}

@Directive({
  selector: '[dirNotA]`
})
export class DirectiveNotA extends DirectiveAOrNotA {
// differences here
}

关于angular - 多指令选择器 - 查找模板中使用了哪个选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60390879/

相关文章:

如果为空,Angular2 隐藏输出

angular - 无法调用其类型缺少调用签名的表达式。类型 'typeof import("sweetalert 2")' 没有兼容的调用签名

javascript - 如何从另一个 Controller 访问所需的 Controller ?

angularjs - 指令未加载作用域变量

json - 使用 xml2js 在 Angular 6 中未定义 parseString

Angular - 如何从产品构建中排除延迟加载的模块?

javascript - 在浏览器控制台中获取调度的 NGRX 项目

javascript - 如何在 Angular 1.x 中的输入字段上使用自定义指令?

javascript - AngularJS:如何根据 Controller 范围更改 ng 类三元运算符的值?

javascript - 在替换 ng-repeat 之前调用自定义指令链接函数