AngularJS $ mddialog как перезагружать содержимое в templateurl каждый раз, когда я нажимаю на него?

#javascript #angularjs

#javascript #angularjs

Вопрос:

Каждый раз, когда я нажимал кнопку, которая выполняет $scope.showAdvanced, содержимое mddialog остается неизменным, даже если я изменил содержимое post.html . Я пытаюсь даже очистить кеш (shift f5), но содержимое остается старым.

 var CardAng=angular.module('CardAng',['ngMaterial','ngMessages']);


    CardAng.controller('AppCtrl', function($scope,$mdDialog){

        $scope.imagePath="img/IMG1.jpg";


        $scope.showAdvanced = function(ev) {
            $mdDialog.show({
              controller: DialogController,
              templateUrl: '/post.html',
              parent: angular.element(document.body),
              targetEvent: ev,
              clickOutsideToClose:true,
              fullscreen: $scope.customFullscreen // Only for -xs, -sm breakpoints.
            })
            .then(function(answer) {
              $scope.status = 'You said the information was "'   answer   '".';
            }, function() {
              $scope.status = 'You cancelled the dialog.';
            });
          };

     function DialogController($scope, $mdDialog) {

        $scope.hide = function() {
          $mdDialog.hide();
        };

        $scope.cancel = function() {
          $mdDialog.cancel();
        };

        $scope.answer = function(answer) {
          $mdDialog.hide(answer);
        };
      }

    });
 

Ответ №1:

У AngularJS есть собственный $templateCache . Попробуйте очистить его.

$templateCache.remove('/post.html') или $templateCache.removeAll();

Комментарии:

1. может ли какой-либо метод очистить кеш или обновить шаблон без обновления (f5)?

2. для этого кэша не требуется f5. Просто очистите целевой шаблон перед его отображением. Будьте осторожны, браузер может кэшировать его, поэтому вы должны предоставить соответствующие заголовки внутреннего кэша