Я пишу небольшой инструмент, для которого мне нужно проверить, определен ли определенный ng-шаблон. Все мои шаблоны определяются следующим образом:проверить, существует ли «текст/ng-template»
<script type="text/ng-template" id="example.html">...</script>
Так проверить, существует ли файл с помощью $ HTTP не будет работать для меня. Как проверить, был ли указан шаблон? Единственный вариант я вижу до сих пор проверяет DOM:
if(angular.element.find('script#example.html').length > 0) { ...
... но я бы действительно любят лучшее решение, которое не нужно проверять DOM.
Если я использую '$ templateCache.get («example.html»)' он будет пытаться загрузить «пример. html 'из текущего URL-адреса, а затем выбросить ошибку. Он не вернет false или null. –
Нет, он проверяет, кэшируется ли шаблон, и возвращает кэшированный HTML, если он находится в кеше. В противном случае он вернет 'undefined'. '$ templateCache.get' ничего не загрузит ([источник] (https://github.com/angular/angular.js/blob/master/src/ng/cacheFactory.js#L345)). – dfsq
Проверьте демо-версию http://plnkr.co/edit/7wkLUhrv65bsoiAZMkqJ?p=preview – dfsq