Utilizando el servicio angular para compartir datos entre controladores.

Estoy tratando de que dos controladores diferentes se comuniquen entre sí.

Controlador 1

function WelcomeCtl($scope, emailService) {
    $scope.save=function(){
        emailService.saveEmail(‘Hi’);
        }
}

WelcomeCtl.$inject = [$scope, emailService];

Este controlador está diseñado para tomar el texto de un campo de texto (con ng-model = 'email') y poner el texto en un servicio (emailService) para que pueda usarse en la siguiente vista de ng (que se controla mediante la siguiente controlador)// para propósitos de prueba, solo estoy poniendo "Hola" directamente en la función saveEmail

Controlador 2

function SignupCtl($scope, emailService) {                                           
    window.alert(emailService.getEmail())
}

SignupCtl.$inject = [$scope, emailService];

Para las pruebas realizadas, estoy usando window.alert para mostrar el valor de getEmail ()

servicio de correo electrónico

angular.module('myApp.services', [])
       .service('emailService', function (){
           var text =”start value”;
           return{
               saveEmail:function (data){
                  text  = data;

              },
              getEmail:function (){
                  return text;
              }
          };
      });

Como resultado del uso de Controller1 y Controller 2 como se especifica con este servicio, window.alert imprime "valor inicial" en lugar de "Hola"

Cuando pongo más funciones de window.alert en el código para ver qué está sucediendo, veo que cuando se llama a save (), el Controlador 1 ejecuta y guarda un valor en el servicio y express.js carga la página siguiente. Entonces el controlador 2 se activa. Cuando el Controlador 2 se activa, reinicia el servicio, configurando el texto nuevamente a "valor inicial". Luego, cuando se llama a getEmail, devuelve el valor "valor inicial"

Esto me confunde porque tenía la impresión de que los servicios no se inicializaban cada vez que se incluían en un controlador.

Recursos consultados.
Mejor diseño para pasar datos a otros ng-view's y persistirlos en los controladores

También estoy trabajando fuera de la semilla angular-expresa https://github.com/btford/angular-express-seed

Respuestas a la pregunta(2)

Su respuesta a la pregunta