7

Vorrei attivare il codice js nel controller angularjs.evento fire angularjs con scheda/browser chiusa

ho questo:

$scope.$on('$destroy', function() { 
      alert('page1'); 
     }); 

Questo sta lavorando bene quando sto di uscire dalla pagina che sta usando tale controller, ma la sua non funziona quando sto chiudendo scheda/browser.

Devo utilizzare un altro codice per attivare il codice js quando la scheda/il browser si sta chiudendo?

Grazie in anticipo, Laziale

risposta

6

dalla documentazione angolari:

$ destroy();

Rimuove l'ambito corrente (e tutti i relativi elementi secondari) da l'ambito genitore. La rimozione implica che le chiamate a $ digest() non moltiplicheranno più all'ambito corrente e ai relativi elementi secondari. Anche la rimozione implica che l'ambito corrente sia idoneo per la garbage collection.

$ destroy() viene in genere utilizzato da direttive come ngRepeat per che gestisce lo srotolamento del ciclo.

Poco prima che un oscilloscopio venga distrutto, viene trasmesso un evento $ destroy su questo ambito. Il codice dell'applicazione può registrare un gestore di eventi $ destroy che gli darà la possibilità di eseguire qualsiasi operazione di pulizia necessaria.

Si noti che, in AngularJS, esiste anche un evento jQuery di $ destroy, che può essere utilizzato per eliminare i binding DOM prima che un elemento venga rimosso da DOM .

Questo semplicemente gestisce la situazione in cui viene distrutto lo stesso ambito, che non sembra verificarsi quando la scheda/browser è chiuso però.

Si dovrà utilizzare metodi di livello inferiore onunload e gli eventi per gestire questa situazione onbeforeunload, ecco un altro post si possono trovare utili:

javascript detect browser close tab/close browser

Problemi correlati