archakov06
@archakov06
Frontend-разработчик (ReactJS)

AngularJS или браузер кеширует шаблон?

Использую такой код:

app.controller('MakeOrders', ['$scope', '$compile', function($scope, $compile) {
	$scope.showOrder = function(id){
		$('.col-lg-3').css('width','30%');
		var title_id = '00000'.substr(0,5-id.toString().length)+id;
		$('.arrow-back').show();
		$('.panel-header h1').text('Заказ №'+title_id);
		$('.col-lg-3').addClass('click').attr('onclick','Orders.backHome();');
		$('.panel-search-box,.panel-content').hide();

		var compiledeHTML = $compile("<div order-Info></div>")($scope);
		$(".panel-content").after(compiledeHTML);
    }

}]);

app.directive('orderInfo', function() {
	return {
	  templateUrl: '/res/admin/order-info.html'
	};
});


Это только часть кода. В общем, выводится все нормально. Но, когда я открываю другой заказ, появляется то же содержание, что из первого. Но и самое странное, что содержимое кешируется (вроде как). Я использовал $templateCache.removeAll() не помогает, пишет ошибку. Я не пойму, как правильно очищать информацию если я открываю новый заказ?

И как лучше поступать в данной ситуации? Когда открываю заказ в AJAX и получаю JSON , который и использую для вывода информации в этом html
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
@lega
Ангуляр кеширует шаблоны, кроме этого ещё и браузер кеширует запросы.
А для данных нужно использовать уникальные урлы, либо помечать как не кешируемые, либо использовать не кешируемые запросы post/put или websockets. $http должен с этим помочь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы