Ho un $scope.$watch
dichiarato nel controller di una direttiva. Quando cambio pagina e la direttiva viene rimossa, devo distruggere manualmente la strada? In tal caso, come posso rilevare quando la direttiva è stata rimossa?La direttiva Angularjs rimuove l'orologio?
risposta
Dipende dall'ambito, non dalla direttiva. Se l'ambito viene distrutto, tutti i suoi $ watcher muoiono con esso. A pagina cambia il tuo raggio d'azione sarà distrutto da angolare, quindi dovresti essere al sicuro.
Quando un oscilloscopio muore produce un evento $ destroy. Potete vederlo:
$scope.$on('$destroy', callback);
e si può staccare manualmente $ osservatori dal campo di applicazione, chiamando la funzione restituisce:
var sentinel = $scope.$watch('expression', callback);
sentinel(); // kill sentinel
Si può fare questo con $ troppo.
In primo luogo, hai detto che quando il campo di applicazione viene distrutto, tutti gli osservatori muoiono con esso. Quindi hai suggerito di rimuovere manualmente gli osservatori sull'evento $ destroy dell'ambito (perché? Si suppone che muoiano automaticamente con scope). Non ha senso per me. Potresti elaborare per favore? – hendrix
Quando la pagina viene modificata con ngView angular pulirà l'ultimo ambito per voi con gli osservatori. (proof => http://goo.gl/GD0pM9) Anche angolare ti dà una funzione destroy di watcher in modo da poter rimuovere manualmente l'espressione se non ne hai più bisogno nell'ambito corrente. – Oliver
- 1. Comunicazione direttiva-direttiva in AngularJS?
- 2. validità vigilanza direttiva AngularJS
- 3. Angularjs personalizzato select2 direttiva
- 4. Direttiva AngularJS Definizione controller
- 5. La direttiva AngularJS non visualizza il modello
- 6. La direttiva AngularJS non viene chiamata
- 7. Callback direttiva angularJS
- 8. unit test direttiva angularjs
- 9. angularjs direttiva: $ rootScope: errore infdig
- 10. AngularJS sovrascrive isolato direttiva portata
- 11. Direttiva bootstrap datepicker per angularjs
- 12. direttiva AngularJS modello non rendendo
- 13. angularjs stessa direttiva nomi conflitto
- 14. AngularJS ngModel direttiva in select
- 15. Lista priorità direttiva standard AngularJS
- 16. Creare una direttiva YouTube AngularJS
- 17. Direttiva canvas semplice in angularjs
- 18. Direttiva angularJS transclude scope = false?
- 19. AngularJS vs TemplateURL nella direttiva
- 20. event.preventDefault() con Angularjs e UIRouter rimuove la cronologia del browser
- 21. Cos'è la direttiva in Angular.JS
- 22. Come creare questo controllo personalizzato con la direttiva AngularJS?
- 23. Come applicare la direttiva in modo condizionale in AngularJS?
- 24. AngularJS - HTML sotto la mia direttiva non sta mostrando
- 25. Angularjs ottiene la validità del campo modulo all'interno della direttiva
- 26. La direttiva AngularJS ng-disabled con espressione non funziona
- 27. Iniettare la dipendenza alla direttiva angularjs utilizzando dattiloscritto
- 28. AngularJS: la direttiva Scope non sta ricevendo $ destroy chiamato
- 29. La direttiva AngularJS all'interno di ng-if non verrà eseguita
- 30. La direttiva personalizzata angularJs non funziona con templateUrl
Angular dovrebbe occuparsene per te –