我正在编写一个小工具,我需要检查是否定义了某个ng-template。 我的所有模板都是这样定义的:
<script type="text/ng-template" id="example.html">...</script>
因此,通过$ http检查文件是否存在对我来说不起作用。 如何检查所述模板是否已定义? 我到目前为止看到的唯一选择是检查DOM:
if(angular.element.find('script#example.html').length > 0) { ...
...但我真的很喜欢不需要检查DOM的更好的解决方案。
答案 0 :(得分:8)
Script directive将模板内容放在$templateCache(来源ref.)中,如果它是模板的话。这意味着您应该能够通过检查模板在缓存中的存在来检查模板是否存在:
if ($templateCache.get('example.html')) {
// template is on the page
}