entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

pasar rootScope a una directiva

se puede pasar el $rootScope de alguna manera a una directiva creada por nosotros en angular, en el parametro require o dentro de link

Es decir algo como esto:

Drtv_NoiseInterruptor.directive('noiseInterruptor', function(){
        return {
            require: "ngRootScope",//esto no funciona
            link: function(scope, element, attrs ){

                    $('.interruptor').on('click', function () {
                        console.log("click in interruptor");
                        var noise = $("input:radio[name=interruptor]:checked").val();
                        console.log(noise);
                        if (noise === "encendido") {
                            console.log("noise true");
                            $rootScope.noiseOnOff(true);//funcion del rootScope que deseo utilizar
                        } else if (noise === "apagado") {
                            console.log("noise false");
                            $rootScope.noiseOnOff(false);
                        }
                    });

            }  
        };
    });

1 Respuesta

1voto

magarzon Puntos15840

Tienes que inyectarlo del mismo modo que se inyecta en otros componentes:

Drtv_NoiseInterruptor.directive('noiseInterruptor', ['$rootScope', function($rootScope){
        return {
            link: function(scope, element, attrs ){

                    $('.interruptor').on('click', function () {
                        console.log("click in interruptor");
                        var noise = $("input:radio[name=interruptor]:checked").val();
                        console.log(noise);
                        if (noise === "encendido") {
                            console.log("noise true");
                            $rootScope.noiseOnOff(true);//funcion del rootScope que deseo utilizar
                        } else if (noise === "apagado") {
                            console.log("noise false");
                            $rootScope.noiseOnOff(false);
                        }
                    });

            }  
        };
    }]);

De todas formas, es una mala práctica añadir funciones al $rootScope

juanLuna comentado hace 5 días

Muchas gracias, he estado horas buscando soluciones, vi como requerir algún módulo de angular por ejemplo el ngModel desde require, así -- require: "ngModel" --. y pensé que podría hacer lo mismo con el $rootScope, .. require: "ngRoot" pero me equivocaba, no había intentado una inyección.

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Actividad Reciente

  • azuriguel ganó una medalla hace 28 minutos

    Humano Verificado - Verificó su email
  • rferreras ganó una medalla hace 46 minutos

    Club de los 100 - Received total of 100 points
  • rferreras ganó una medalla hace 47 minutos

    Humano Verificado - Verificó su email
  • asantosz ganó una medalla hace 1 hora

    Club de los 100 - Received total of 100 points
  • fmaciask ganó una medalla hace 5 horas

    Humano Verificado - Verificó su email
  • ShamiiCooper preguntó hace 12 horas

    Instancia de UpdatePanel
  • ShamiiCooper ganó una medalla hace 12 horas

    Regular - Primera visita hace más de 90 días
  • test123 ganó una medalla hace 17 horas

    Club de los 100 - Received total of 100 points
  • tetete ganó una medalla hace 17 horas

    Club de los 100 - Received total of 100 points
  • Testttt ganó una medalla hace 17 horas

    Club de los 100 - Received total of 100 points

¿Eres Usuario Apple?

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta