Ho bisogno di guardare le modifiche sulla barra degli URL e fare determinate azioni basate su quello. Mi chiedevo qual è il modo migliore per aggiungere un orologio per visualizzare le modifiche ad esso?
5
A
risposta
12
Eventi, sono solo privi di documenti per qualche ragione.
Provare i seguenti eventi: $locationChangeStart
e $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);
});
Oppure si può $ guardare qualsiasi valore che si desidera passando una funzione nel primo argomento $ dell'orologio come suggerito Anders:
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
Tuttavia questo creerà un po 'più di overhead sul tuo $ digest.
1
Supponendo che hai richiesto la posizione oggetto $ nel controller, si può fare in questo modo: esistono
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
Problemi correlati
- 1. Angular.js guardare il risultato di una chiamata di funzione
- 2. Instradamento nella sottodirectory in Angular.js
- 3. Come fornire il proprio LocationProvider su Android?
- 4. Come parseInt in Angular.js
- 5. templating in angular.js - ereditarietà
- 6. $ post http in Angular.js
- 7. direttive angular.js in diversi moduli
- 8. Visualizzazione collegamento condizionale in Angular.js
- 9. DataBinding una funzione in Angular.js
- 10. Cos'è la direttiva in Angular.JS
- 11. $ routeProvider/$ locationProvider non è una funzione nell'instradamento AngularJS
- 12. angular.js $ resource setting Intestazione di autorizzazione
- 13. Come guardare un file scrivere in PHP?
- 14. Guardare in vista Regex scartare una partita
- 15. Uso delle espressioni in ngModel in Angular.js
- 16. Perché non guardare avanti e guardare dietro il lavoro di Regex in Kotlin?
- 17. angular.js ng-repeat divisione
- 18. Multiple Modal with Angular.js
- 19. HTTP POST utilizzando Angular.js
- 20. Angular.js con jQuery Mobile
- 21. Nodejs/HapiJs con Angular.js
- 22. Angular.js Scelto integrazione
- 23. tokenInput come angular.js direttiva
- 24. Come guardare console.logs nell'emulatore ionico?
- 25. Angular.js e Require.Js
- 26. jQuery (evento): guardare stile elemento
- 27. Guardare memoria locale usando angularjs
- 28. vue.js $ guardare array di oggetti
- 29. parziale stringa HTML fuga in Angular.js
- 30. Come "cancellare" una variabile dall'oscilloscopio in angular.js
Grazie a @blesh. cercando di identificare quando vengono emessi i due eventi e qual è la differenza tra loro. qualche idea? – Lior
È tutto impostato nel codice di inizializzazione per $ posizione. [Dai un'occhiata all'origine su GitHub] (https://github.com/angular/angular.js/blob/master/src/ng/location.js). Solo CTRL + F per $ locationChangeStart. È fondamentalmente uguale al metodo $ watch() suggerito, ma è già impostato per te, quindi c'è meno overhead. –
In breve, '$ locationChangeStart' si verifica per primo e offre un'opzione per impedire la modifica con' preventDefault() 'sull'oggetto evento passato ad esso. '$ locationChangeSuccess' si attiva dopo che la posizione è stata cambiata con successo. (piuttosto, quando ti sei impegnato a cambiare la posizione). –