die folgenden URL zeigt die Auflistung Bücher eines Benutzers unter einem Mieter xxtenant in der folgenden URLBrowser Zurück-Taste Umleiten zur vorherigen Seite und Anhängen der Route jeweils mal mit url wird Routing mit angulrjs getan
http://localhost:5306/xxtenant#/mybooks
die Route Konfiguration für die oben unten ist,
$routeProvider.when('/mybooks', {
templateUrl: '/partials/mybooks.html',
controller: 'mybooksCtrl',
resolve: {
//code to check tokens
}
})
die Aggregationsseite i eine Taste habe das Buch Details zu bearbeiten, , wenn ich auf die Schaltfläche klicken der Browserumleitet
$routeProvider.when('/editbook/:bookId?/:action/:status', {
templateUrl: '/partials/editbook.html', controller: 'editbookCtrl', resolve: {
//code to check tokens
}
})
Wenn i-Browser klicken Zurück-Button auf dieser Seite bearbeiten, es auf die vorherige Seite wird umgeleitet und die URL wurde wie unten, http://localhost:5306/xxtenant#/mybooks#%2Fmybooks.
Also, wenn Klick Schaltfläche Bearbeiten, wird sie auf der Bearbeitungsseite umgeleitet und die URL wird http://localhost:5306/xxtenant#/editbook/7190/edit/saved#%2Fmybooks
und von dort sein, ich bin Klick Browser umleiten Taste zurück zu http://localhost:5306/xxtenant#/accessdenied#%2Fmybooks%23%252Fmybooks und da ich die Strecke wie .otherwise({ redirectTo: '/accessdenied' })
angegeben haben
Jeder kann mir bitte helfen, warum die '/mybooks'
wird hinzugefügt, um die URL beim Klicken zurück Schaltfläche?
AngularJS Version 1.4.8 und Angular-Strecke Version 1.4.3
Hallo Bearbeitung der Post, da ich den Grund dafür, weil ich
Das Problem geschieht geschehen gefunden Ich rufe $location.path('/mybooks');
wenn irgendwelche Änderungen auf der Seite bearbeiten Seite Ich werde die Rückseite oder $locationchangestartevent
verhindern und ein Popup zum Speichern oder Abbrechen der Änderungen anzeigen. Beim Speichern oder Abbrechen rufe ich die Standort-URL auf, die der Benutzer versucht hat zu gehen. unten ist mein Code,
function init() {
onRouteChangeOff = $scope.$on('$locationChangeStart', routeChange);
}
function routeChange(event, newUrl, oldUrl) {
var form = $scope.createbookForm;
if (form.$dirty || $scope.MediaSelected || $scope.ImageSelected || $scope.TrainingTypeSelected) {
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: '/scripts/angular/src/modal.html',
controller: 'ModalInstanceCtrl',
size: 'sm',
resolve: {
modalOptions: function() {
return $scope.modalOptions;
}
}
});
}
modalInstance.result.then(function (returnVal) {
if (returnVal) {
if ($scope.isValidForSavePopUp) {
$scope.saveClass(form);
}
onRouteChangeOff();
$location.path($location.url(newUrl).hash());//here the issue
}
});
event.preventDefault();
return;
}
Während die $location.path($location.url(newUrl).hash());
seine Umleiten richtig aufrufen, aber das Hinzufügen% 2f und den Wert von $location.url(newUrl).hash()
Es funktioniert richtig, wenn ich