http://embed.plnkr.co/oGlcQSOM2vFcDEKP7thV/
$injector.has('myMessageDirective')
返回true,而$injector.has('myMessageComponent')
则不返回
有人在努力解决这个问题还是有解决方案?我的恐惧"是因为指令检查,未来的更新中可能找不到我的组件。
答案 0 :(得分:1)
在一天结束时,一个组件被注册为指令,因此指令'确实需要后缀。
检查' $ injector对象的方法:
return {
invoke: invoke,
instantiate: instantiate,
get: getService,
annotate: createInjector.$$annotate,
has: function(name) {
return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);
}
};
您可以对其进行调试,并查看所有组件(在缓存对象内)是否已注册为指令。没有'组件'后缀。
答案 1 :(得分:0)
我认为,最简单的方法是在指令的/组件容器中添加id
属性,然后检查是否存在具有此id
的元素。