Browser does not detect changes in AngularJS

2019-08-12 07:23发布

Im developing an AngularJS application using IDE WebStorm and Safari browser.

Everything has worked perfectly so far, but I recently encapsulated some HTLM in a template that I use via a directive:

 .directive('referenceValue', [function ($scope) {
    return {
        restrict: 'E',
        templateUrl: "views/citizenprofile/reference/reference.html",
        controller: "referenceValueCtrl"
    }
}])

I "call" the directive the normal way, nothing fancy <reference-value></reference-value>

When I edit the reference.html the browser only detects the changes in the first edit.. If I edit reference.html a second time and update the browser then the change is not detected. If I restart the browser the change is detected again. So I basically need to restart my browser each time I want to debug the HTML code. Changes in the Controller is detected at every edit.

Can anyone tell me how to fix this error?

2条回答
乱世女痞
2楼-- · 2019-08-12 07:59

If you are using google chrome press CTRL+SHIF+J and on the network tab check 'Disable Cache'

Hope it helps

查看更多
SAY GOODBYE
3楼-- · 2019-08-12 08:05

Your template is being cached. There are a couple of work arounds. Either use Chrome's dev tools to disable cache when the dev tools is open, or use the $templateCache.remove() in your application.

app.run(function($rootScope, $templateCache) {
   $rootScope.$on('$viewContentLoaded', function() {
      $templateCache.removeAll();
   });
});

Find more info on removing the template cache here.

查看更多
登录 后发表回答