Javascript 检查是否存在角度指令

Javascript 检查是否存在角度指令,javascript,angularjs,Javascript,Angularjs,在Angular项目中,我们围绕动态指令做了很多工作,其中一件很好的事情是,通过根据对象的类型授权给特定指令,有一种通用指令,可以列出许多不同类型的类似对象(例如,消息、用户、注释等) 我们把这个指令称为对象列表,如果我们能让它正常工作,它有望被委托给许多不同的指令 我们需要解决的主要问题是,我们的系统中是否存在提供此对象列表指令的指令。我们检查这一点的方法是针对目标指令发出$compile,将其链接到一个作用域,并检查其HTML内容(例如,var tmpElement=$compile(“您可

在Angular项目中,我们围绕动态指令做了很多工作,其中一件很好的事情是,通过根据对象的类型授权给特定指令,有一种通用指令,可以列出许多不同类型的类似对象(例如,消息、用户、注释等)

我们把这个指令称为对象列表,如果我们能让它正常工作,它有望被委托给许多不同的指令


我们需要解决的主要问题是,我们的系统中是否存在提供此
对象列表
指令的指令。我们检查这一点的方法是针对目标指令发出
$compile
,将其链接到一个作用域,并检查其HTML内容(例如,
var tmpElement=$compile(“您可以使用
$injector.has
检查是否存在提供程序或实例)

app.directive('objectList', function ($compile, $injector) {
  return {
    template: 'OK',
    link: function (scope, element, attrs) {
      var exist = $injector.has('myMessageDirective');
      ...
    }
  };
});

感谢您的回复,Buu。不幸的是,它看起来不起作用。
$injector.has()
方法的文档说明它仅用于服务查找。此外,在我的Plunker上尝试它(此处更新)无法给出我要查找的结果。它应该是
$injector.has('myMessageDirective'))
,而不是
$injector.has('myMessage')
(为什么?因为$compile服务在注册任何指令时都会添加“Directive”后缀。)工作plunker:Aah,我现在明白了。谢谢,Buu!您也可以使用它检查组件是否存在(Angular 1.5+)。