Браузер не обнаруживает изменения в 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 и на вкладке сети установите флажок "Отключить кэш".

Надеюсь, поможет

Другие вопросы по тегам