javascript - 如何检查 Angular 1.5 中是否存在组件

标签 javascript angularjs angularjs-directive angular-components

http://embed.plnkr.co/oGlcQSOM2vFcDEKP7thV/

$injector.has('myMessageDirective') 返回 true,而 $injector.has('myMessageComponent') 不返回 true

有没有人为此苦苦挣扎或有解决方案?我的“恐惧”是由于指令检查,我的组件可能无法在未来的更新中找到。

跟进问题:Check if an Angular directive exists

最佳答案

归根结底,组件被注册为指令,因此确实需要“Directive”后缀。

检查 $injector 对象的 'has' 方法:

return {
  invoke: invoke,
  instantiate: instantiate,
  get: getService,
  annotate: createInjector.$$annotate,
  has: function(name) {
    return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);
  }
};

您可以调试它并看到所有组件(在缓存对象内)都已注册为指令。没有“组件”后缀。

关于javascript - 如何检查 Angular 1.5 中是否存在组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39992146/

相关文章:

javascript - 如何将值作为 ng-init 的参数传递给指令

javascript - AngularJS : How to pass an object from the directive to transcluded template

javascript - 课外悬停效果

javascript - 使用querySelectorAll为图像源添加前缀

javascript - 我可以在 NodeJS 的 require 函数中使用别名吗?

javascript - 如何在 JavaScript 中获取不同时区的日期?

javascript - 从模板 angularJs 中的 Controller 填充 id 属性的值

javascript - Angular js : Prevent Bootstrap Modal from disappearing when clicking outside or pressing escape?

AngularJS - 从自定义指令将参数从 ng-repeat 传递到 Controller

javascript - ng-repeat 在 neSTLed 数据更改后不更新