Muszę obejrzeć zmiany na pasku adresu i wykonać na nim określone działania. Zastanawiałem się, jaki jest najlepszy sposób, aby dodać zegarek, aby wyświetlić zmiany w nim?
5
A
Odpowiedz
12
wydarzenia, oni po prostu nieudokumentowane z jakiegoś powodu.
Spróbuj następujące zdarzenia: $locationChangeStart
i $locationChangeSuccess
scope.$on('$locationChangeStart', function (event, newLoc, oldLoc){
console.log('changing to: ' + newLoc);
});
scope.$on('$locationChangeSuccess', function (event, newLoc, oldLoc){
console.log('changed to: ' + newLoc);
});
Albo można $ oglądać dowolną wartość, którą chcesz przekazując funkcję do pierwszego argumentu $ zegarka jak sugeruje Anders:
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
jednak to stworzy trochę więcej na twoim $ digest.
1
Zakładając, że zwrócił się do lokalizacji obiektu dolarów w kontrolerze, możesz zrobić to tak: istnieją
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
Powiązane problemy
- 1. Vue JS Oglądanie głęboko zagnieżdżonego obiektu
- 2. Routing w podkatalogu w Angular.js
- 3. oglądanie katalogu w ruby
- 4. Oglądanie katalogu zmian w Javie
- 5. Wyłącz oglądanie plików w Meteoru
- 6. Oglądanie obliczane właściwości
- 7. Ustawienie Angular.js $ resource Nagłówek autoryzacji
- 8. Templowanie w angular.js - dziedziczenie
- 9. Grunt, mniej i oglądanie pliku
- 10. Oglądanie zmian DOM, elegancki sposób
- 11. Jak uniemożliwić Meteorowi oglądanie plików?
- 12. Oglądanie wartości w usłudze od kontrolera
- 13. Oglądanie C++ tablicy w Visual Studio
- 14. Oglądanie wartości funkcji w dyrektywie AngularJS
- 15. Oglądanie zmiennych w SSIS podczas debugowania
- 16. $ routeProvider/$ locationProvider nie jest funkcją w AngularJS Routing
- 17. Pamięć podręczna DOM w Angular.JS
- 18. Jak wdrożyć aplikację Angular.js?
- 19. Oglądanie pamięci lokalnej za pomocą angularjs
- 20. Wiele modów z Angular.js
- 21. Czy Google Dogfooding Angular.js?
- 22. Nodejs/HapiJs z Angular.js
- 23. Angular.js i Require.Js
- 24. Używanie StackTrace.js z Angular.js
- 25. Angular.js inicjowanie sterownika opóźniającego
- 26. oglądanie płótna/bitmapy w locie podczas debugowania w środowisku Eclipse
- 27. Java: Oglądanie katalogu w celu przenoszenia dużych plików
- 28. warunkowo dodaj atrybut elementu w angular.js
- 29. Jak zmienić stan przycisku w pliku angular.js?
- 30. Angular.js - Filtr w tagu img src
Dzięki @blesh. próbuje zidentyfikować, kiedy dwa zdarzenia są emitowane i jaka jest różnica między nimi. jakieś pomysły? – Lior
Wszystko jest skonfigurowane w kodzie inicjującym dla lokalizacji $. [Zobacz źródło na GitHub] (https://github.com/angular/angular.js/blob/master/src/ng/location.js). Wystarczy CTRL + F dla $ locationChangeStart. Zasadniczo jest to ta sama zasada, co sugerowana metoda $ watch(), ale jest już skonfigurowana dla ciebie, więc mniej jest narzutów. –
W skrócie, '$ locationChangeStart' dzieje się na początku i daje opcję, aby zapobiec zmianie za pomocą' preventDefault() 'na obiekcie zdarzenia przekazanego do niego. '$ locationChangeSuccess' uruchamia się po pomyślnej zmianie lokalizacji. (raczej, gdy zobowiązujesz się do zmiany lokalizacji). –