Also habe ich die Antwort von @Bema in TypeScript transkribiert und so sieht es aus:
namespace MyAwesomeApp {
function detectBackButton(
$rootScope: ng.IRootScopeService,
$location: ng.ILocationService
) {
let actualLocation: string = '';
$rootScope.$on('$locationChangeSuccess',
() => {
actualLocation = $location.path();
});
$rootScope.$watch(() => $location.path(),
(newLocation: string, oldLocation: string) => {
if (actualLocation === newLocation) {
}
});
}
detectBackButton.$inject = [
'$rootScope',
'$location'
];
angular
.module('app')
.run(detectBackButton);
}
Wir müssen keine Eigenschaft außerhalb des $rootScope
Dienstes erstellen, sondern können nur unseren Code "Erfolg beim Ändern vor Ort" und " Vor Ort geändert" über der lokalen actualLocation
Variablen schließen. Von dort aus können Sie wie im Originalcode tun, was Sie möchten. Ich für meinen Teil würde in Betracht ziehen, ein Ereignis zu senden, damit einzelne Controller alles tun können, was sie müssen, aber Sie könnten globale Aktionen einschließen, wenn Sie müssten .
Vielen Dank für die großartige Antwort, und ich hoffe, dies hilft anderen Typoskript-Benutzern da draußen.