我们在 Angular 项目中围绕动态指令做了大量工作,其中一个很好的方法是拥有一个通用指令,该指令可以列出许多不同类型的相似对象(例如,消息,用户,评论等),通过根据对象的类型委托给特定的指令。
我们称之为object-list
指令,如果我们能让它正常工作,它有望委托给许多不同的指令。
我们需要解决的主要问题是object-list
我们的系统中是否存在已提供该指令的指令。我们一直在检查这一点的方法是$compile
针对 target 指令发出一个,将其链接到一个范围,并检查其 HTML 内容(例如,var tmpElement = $compile('<div my-message'></div>')(scope);
)。This seems to work when the template for the target directive is referenced by the template
option, but when we instead try to point to a templateUrl
, the HTML contents are empty.
这是一个 Plunker,templateUrl
方法到位(不起作用)。您可以将其注释掉并取消注释该template
行以查看警报显示。
http://plnkr.co/edit/wD4ZspbGSo68v4eRViTp
有没有另一种方法来检查指令的存在?我承认,这似乎有点骇人听闻。