Angular $ location.path funktioniert nicht
Ich habe eine ähnliche Frage wiedieses, aber anders.
Hier versuche ich, einen Ereignis-Listener für a hinzuzufügenwindow.postMessage
Handler.
app.run(function ($location, $window, $rootScope) {
$window.addEventListener('message', function(e) {
$location.path("/abc");
console.log($location.path()); // this prints "/abc" as expected
$rootScope.$apply(); // this has no effect
$scope = angular.element(document).scope(); // this is the same as $rootScope
$scope.$apply(); // so this also has no effect
});
});
Das$location.path
wird von Angular nicht erkannt.
Die andere Frage besagt, dass ich anrufen soll$apply()
über den Umfang, aber der einzige Bereich, der mir zur Verfügung steht, ist$rootScope
und anrufen$apply()
das scheint nicht zu funktionieren.
Ein Kommentar zu der Antwort deutet darauf hin, dass ein Bereich mit erhalten werden kann
$scope = angular.element(document).scope()
aber das gibt mir die$rootScope
, was nicht geht.
Wie bekomme ich eckig, um die Änderung in zu erfassen?$location.path()
? Gibt es eine bessere Möglichkeit, sich zu registrieren?message
Rückruf so wie ich den Pfad ändern kann?