Эта проблема AngularJS отключить частичное кэширование на компьютере-разработчике предлагает использовать $templateCache.removeAll()
для очистки шаблоны кеша. Однако что, если вы просто хотите запускать это один раз в каждом цикле развертывания, чтобы браузеры посетителей обновляли/обновляли шаблон? Наша проблема заключалась в том, что некоторые браузеры не обновляли html-файлы шаблонов, и в итоге мы получали новый CSS, смешанный со старым HTML. Я не хочу, чтобы эта функция срабатывала все время, что с самого начала разрушило бы точку шаблонов кеша (правильно?).
В соответствии с вопросом заголовка, каков рекомендуемый способ очистки $templateCache «один раз», например, некоторые идеи, которые я хрустел:
- Есть ли в Angular внутренний метод определения изменения файла шаблона? А потом, если так, "обновить" его.
- Есть ли у Angular внутренняя «версия» или «дата», которую мы могли бы сравнить и добавить условную функцию для запуска функции removeAll ()?
- Знает ли когда-нибудь сам $templateCache об обновлении? Каковы были намерения создателя Angular, навязывая нам templateCache, если файлы HTML должны изменяться со временем и обслуживаться несколькими браузерами.
Я не хочу использовать grunt, чтобы добавлять накладные расходы рабочего процесса для чего-то, что происходит периодически, или разбивать шаблоны html-файлов на переменные. (Это хороший метод для очистки кеша шаблонов? в угловом?)
Альтернативой, которую я вижу, является просто добавление и удаление кода removeAll() вручную, что было бы глупо.