У нас есть приложение ASP.NET MVC 5, которое использует ui-router AngularJS module.Угловой ui-router показывает старые устаревшие данные после перехода обратно в состояние
Когда мы вернемся в состояние, которое уже было загружено, оно всегда показывает старые данные, пока мы не обновим полную страницу.
Например:
- пользователь нажимает кнопку «Просмотр профиля», мы показываем состояние «ViewProfile», страница отображения профиля
- Пользователь нажимает «Редактировать профиль», мы показываем состояние «EditProfile» , страница с полями для редактирования профиля
- Пользователь вносит изменения и нажимает «Сохранить», затем они возвращаются в состояние «ViewProfile»
- Когда состояние «ViewProfile» загружается, оно все еще показывает старые данные до редактирование
Как мы можем заставить маршрут ui извлекать свежие данные в любое время, когда он загружает любое состояние?
Угловая конфигурация
var app = angular.module("MyApp", ['ngIdle', 'ui.router'])
.config(['$stateProvider', '$urlRouterProvider', '$locationProvider',
function ($stateProvider, $urlRouterProvider, $locationProvider) {
// Configure client-side routing
$locationProvider.hashPrefix("!").html5Mode(true);
$urlRouterProvider.otherwise("/");
$stateProvider
.state('Home', {
url: '/',
views: {
"mainContainer": {
templateUrl: function (params) { return 'Home/Index'; }
}
}
})
.state('ProfileManagement', {
url: '/ProfileManagement-{action}',
views: {
"mainContainer": {
templateUrl: function (params) { return 'ProfileManagement/' + params.action; }
}
}
})
}]);
Как мы делаем переход
$state.go(stateName, { action: actionName }, { reload: true, inherit: false, notify: true });
EDIT ж/Решение Поскольку все функции записывается с помощью JQuery, мы не можем использовать угловые контроллеры для управления данными. Наше решение состояло в том, чтобы полностью отключить кеширование угловых шаблонов с помощью следующего кода:
app.run(function ($rootScope, $templateCache) {
$rootScope.$on('$viewContentLoaded', function() {
$templateCache.removeAll();
});
});
Старый вопрос, но с той же проблемой. Я добавил ваш код, но на этот раз я потерял всю свою глобальную информацию. Есть идеи? – Murat