Я пытаюсь кэшировать HTML-файл, содержащий некоторые угловые переменные, но когда я добавить содержимое файла в йот, все переменные являются просто текст, как {{ variable.name.here }}
Я извлекая файл HTML с $ http.get так:
$http.get('app/shared/partials/raise-error.html').then(function(res){
$templateCache.put('raiseErrorBlock', res.data);
});
... и это повышение-error.html (часть):
<div id="raiseError" ng-show="errorParams.raise" class="slide-down">
<div class="raiseErrorWrapper">
<div class="rew-header">
<i class="fa fa-bug"></i>
<span class="rewh-title">{{ errorParams.title }}</span>
</div>
</div>
</div>
Я Runni в блоке $ http.get внутри run() для любого вопроса.
EDIT: от того, что я вижу, это проблема с шаблоном. Поддерживает ли templateCache поддержку переменных или может кэшировать только статические данные?
Спасибо, все работает! Я вижу, что если я хочу использовать это внутри службы, я должен заменить (область) с помощью ($ rootScope. $ New()) – tbutcaru
Это не совсем так, как вы сказали, потому что если вы используете тот же код, например. контроллер, вы также должны использовать компиляцию $. Чтобы уточнить, вам нужно ввести область действия шаблона (возвращается службой $ compile), если вы хотите вручную вставить что-то в DOM. – hinok
Действительно, вам нужно использовать компиляцию $, но я говорил, что в службе вы не можете вводить $ scope, но вы можете ввести $ rootScope, поэтому вам придется сделать что-то вроде этого '' var scope = $ rootScope. $ new(); '', так что '' компиляция $ (html) (scope) '' будет работать. – tbutcaru