我们在 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 templateoption, but when we instead try to point to a templateUrl, the HTML contents are empty.
这是一个 Plunker,templateUrl方法到位(不起作用)。您可以将其注释掉并取消注释该template行以查看警报显示。
http://plnkr.co/edit/wD4ZspbGSo68v4eRViTp
有没有另一种方法来检查指令的存在?我承认,这似乎有点骇人听闻。