Wir haben eine ASP.NET MVC 5-Anwendung, die Ui-Router AngularJS-Modul verwendet.Angular Ui-Router zeigt alte veraltete Daten nach dem Übergang zurück zum Status
Wenn wir zu einem Zustand zurückkehren, der bereits geladen wurde, werden immer die alten Daten angezeigt, bis wir eine vollständige Seite aktualisieren.
Zum Beispiel:
- Nutzer klickt ‚Profil‘ zeigen wir den „ViewProfile“ Zustand, eine Seite das Profil
- Benutzer klickt auf „Profil bearbeiten“ angezeigt wird, zeigen wir den „EditProfile“ Zustand , eine Seite mit Feldern das Profil
- Benutzer macht Änderungen und klickt auf ‚Speichern‘ bearbeiten, werden sie dann wieder auf den „ViewProfile“ Zustand bewegt
- Wenn „ViewProfile“ Zustand geladen wird, es immer noch die alten Daten vor der zeigt, Bearbeitungen
Wie können wir erzwingen, dass bei jedem Ladevorgang neue Daten abgerufen werden?
Angular Config
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; }
}
}
})
}]);
Wie wir den Übergang
$state.go(stateName, { action: actionName }, { reload: true, inherit: false, notify: true });
EDIT w/Lösung Da alle Funktionen geschrieben mit jQuery tun, können wir nicht Angular verwenden Controller, um die Daten zu steuern. Unsere Lösung bestand darin, das Angular Template Caching mit dem folgenden Code komplett zu deaktivieren:
app.run(function ($rootScope, $templateCache) {
$rootScope.$on('$viewContentLoaded', function() {
$templateCache.removeAll();
});
});
Alte Frage, aber haben das gleiche Problem. Ich habe deinen Code hinzugefügt, aber dieses Mal habe ich alle meine globalen Informationen verloren. Irgendeine Idee? – Murat