funciones example eventos entre controladores comunicacion angularjs angularjs-scope angular-ui-router angular-ui

angularjs - example - scope emit('' load '')



¿Cómo puedo borrar todos los valores AngularJS $ scope y $ rootScope dentro de una sola función? (2)

Necesito borrar todos los valores de $scope mientras realizo algunas operaciones.

Por ejemplo: si hago clic en el botón "Signout" para redireccionar a la página de "signin" inicio de sesión "signin" , entonces deben borrarse todos los valores de $ scope o $ rootScope en la sesión.

¿Cómo puedo conseguir esto?


Puedes hacer lo siguiente:

$rootScope = $rootScope.$new(true); $scope = $scope.$new(true);

La función $new está creando un nuevo ámbito heredando las variables del padre. true impide la herencia.

Pero este no es el enfoque correcto, porque si usa lo anterior, debe iniciar manualmente las funciones de los controladores y volver a crear el árbol de ámbitos.

Sin embargo, esto podría ser útil, donde la idea es almacenar los datos inicializados que se almacenan en algunas variables y luego, cuando se asignan copiados a las variables mostradas.

La solución correcta es borrar manualmente cada propiedad en cada alcance en el evento de cierre de sesión como este: Evento de cierre de sesión:

$rootScope.$emit("logout");

Atrapando el evento:

$rootScope.$on("logout", function(){ $rootScope.myData = undefined; });

O como se sugiere en los comentarios, para usar un servicio y luego limpiarlo.


You not want delete scope var authScope =[''authLogo'',''currentPath'',''pageTitle'',''app'']; for (var prop in $rootScope) { if (prop.substring(0,1) !== ''$'') { if(authScope.indexOf(prop) ==-1) delete $rootScope[prop]; } }