http://embed.plnkr.co/oGlcQSOM2vFcDEKP7thV/
$injector.has('myMessageDirective')
返回 true,而 $injector.has('myMessageComponent')
不返回 true
有没有人为此苦苦挣扎或有解决方案?我的“恐惧”是由于指令检查,我的组件可能无法在未来的更新中找到。
最佳答案
归根结底,组件被注册为指令,因此确实需要“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/