Браузер не обнаруживает изменения в AngularJS
Я занимаюсь разработкой приложения AngularJS с использованием IDE WebStorm и браузера Safari.
Пока все отлично работает, но недавно я инкапсулировал некоторые HTLM в шаблон, который я использую через директиву:
.directive('referenceValue', [function ($scope) {
return {
restrict: 'E',
templateUrl: "views/citizenprofile/reference/reference.html",
controller: "referenceValueCtrl"
}
}])
Я "называю" директиву обычным способом, ничего особенного <reference-value></reference-value>
Когда я редактирую reference.html, браузер обнаруживает изменения только при первом редактировании., Если я отредактирую reference.html второй раз и обновлю браузер, то изменение не будет обнаружено. Если я перезагружаю браузер, изменение обнаруживается снова. Поэтому мне нужно перезапускать браузер каждый раз, когда я хочу отладить HTML-код. Изменения в контроллере обнаруживаются при каждом редактировании.
Может кто-нибудь сказать мне, как исправить эту ошибку?
2 ответа
Ваш шаблон кэшируется. Есть несколько вариантов работы. Либо используйте инструменты разработчика Chrome, чтобы отключить кэш, когда инструменты разработчика открыты, либо используйте $templateCache.remove()
в вашем приложении.
app.run(function($rootScope, $templateCache) {
$rootScope.$on('$viewContentLoaded', function() {
$templateCache.removeAll();
});
});
Более подробную информацию об удалении кэша шаблонов вы найдете здесь.
Если вы используете Google Chrome, нажмите CTRL+SHIF+J и на вкладке сети установите флажок "Отключить кэш".
Надеюсь, поможет