Angular-styleguide: ¿Mover $ emit, $ broadcast o $ a una fábrica?

Creado en 12 may. 2015  ·  8Comentarios  ·  Fuente: johnpapa/angular-styleguide

John, en Y031 mencionas lo siguiente:

Por ejemplo, cuando publique y suscriba eventos usando $ emit, $ broadcast o $ on, considere mover estos usos a una fábrica e invocarlos desde el controlador.

¿Podría ampliar un poco cómo implementar esto? ¡Una muestra de código estaría bien!

question

Todos 8 comentarios

También me pregunté esto y encontré la siguiente pregunta / respuesta de stackOverflow: http://stackoverflow.com/questions/14056874/how-to-emit-events-from-a-factory

Soy bastante principiante en lo que respecta al angular, así que si esto es una mala práctica, que alguien me lo diga. :)

Creo que también depende de si se encuentra en un proyecto angular puro o en un proyecto heredado / híbrido.
es decir, desea compartir el mismo evento dentro y fuera del marco angular
convertir el pub / sub en una fábrica facilita la implementación alternativa para reemplazar $ emit, $ broadcast.
por ejemplo, http://jonathancreamer.com/an-angular-event-bus-with-postal-js/

También estoy teniendo problemas para entender la siguiente oración de Y031 :

Considere usar $ scope en un controlador solo cuando sea necesario. Por ejemplo, cuando publique y suscriba eventos usando $ emit, $ broadcast o $ on, considere mover estos usos a una fábrica e invocarlos desde el controlador.

Entonces, ¿la conclusión de la oración anterior es evitar las transmisiones con el uso de fábricas? Si es así, sugiero una formulación diferente.

No estoy pensando en la comunicación entre controladores, sino en cambios de estado importantes, como iniciar / cerrar sesión. ¿Ya que posiblemente tenga que informar a casi todos los componentes sobre eso si se siente como una tarea adecuada para una transmisión?

Si entiendo correctamente, creo que estás malinterpretando esto @sebastianhaas. Este pasaje de la guía de estilo sugiere trasladar el uso de $emit , $broadcast o $on a una fábrica, sin reemplazar el uso _con_ una fábrica.

¡Gracias por tu respuesta @zachlysobey! Sí, pero ¿cómo lograrías eso? Supongamos que quiero actualizar los valores en un controlador en ciertas transmisiones. Si muevo esos $on a una fábrica, me pregunto cómo informar al controlador nuevamente.

Déjame aclarar ... Tenía una frase confusa ahí. El punto era usar $ scope solo cuando fuera necesario. Que es cuando tienes que tener un alcance para manejar el trabajo. Esto incluye transmisión o emisión. Esos están bien en el controlador si, y solo si, lo que necesita enviar es un mensaje. Pero es posible que también desee considerar otras opciones.

Estaba tratando de tener cuidado aquí porque quiero desalentar el alcance. Aplicar también en los controladores.

Quité la oración.

¡Muchos gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

samithaf picture samithaf  ·  12Comentarios

jansepke picture jansepke  ·  12Comentarios

xavhan picture xavhan  ·  5Comentarios

majj picture majj  ·  4Comentarios

nonopolarity picture nonopolarity  ·  5Comentarios