Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

250
Visualizações
¿Cómo puedo llamar a una función en otro controlador en un directorio diferente de un controlador en otro directorio donde simplemente copiarlo no funcionará?

Entonces, sé que hay otras soluciones aquí... pero mi situación es única.

El primer controlador, y sí, esto está en AngularJS para una gran empresa de telecomunicaciones, tiene varias variables $scope únicas que no se pueden mover ni copiar. ¡Este código es un DESORDEN!

Entonces, he intentado:

 $rootScope.CallMainFunction, (incomingData) => { $scope.mainFunction(incomingData); };

y la función principal está aquí... todo complejo pero lo he simplificado

 $scope.mainFunction = (data) => { --- Do lots of stuff here with lots of variables NOT available anywhere else }

La función de llamada:

 $rootScope.$emit.CallMainFunction(id);

Los dos controladores están separados por dos carpetas:

 --- MODULES (just the name of the directory) ---| folder 1 ---| folder 2 ---| folder 3 ---| folder 50 <-- YEAH there are this many.

PODRÍA hacer un servicio, pero esta es una aplicación tan disfuncional que llevará semanas. Esa es la forma CORRECTA de hacerlo "SI" estaba en Angular 6 - 14.

Entonces, me quedo con tratar de llamar a una función a una función dentro de otro controlador. ¿Pensamientos por favor?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Suponiendo que el controlador 'enviador' es un padre del controlador 'receptor' (ya que se envía a través de $rootScope), puede transmitir el evento y luego ejecutar la función en su propio controlador.

 //broadcast the event down $rootScope.CallMainFunction = function (someData) { $scope.$broadcast("callMainFunction", someData); }

Luego, en el controlador receptor, escuche el evento. Además, no olvides matar al oyente cuando el controlador se descargue.

 //handle SendDown event var myListener = $scope.$on("callMainFunction", function (evt, data) { $scope.theMainFunction(data) }); $scope.$on('$destroy', myListener);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda