Me gustaría crear un 'componente de inicio de sesión' que muestre algún tipo de modal emergente. Considere que tengo muchos lugares en toda mi aplicación que pueden llamar a este modal. ¿Qué es un enfoque de bateador? 1. Colocar el 'componente de inicio de sesión' en todos los lugares donde lo uso, aunque es el mismo en todos lados. 2. Colóquelo en el componente de nivel superior y muéstrelo y ocúltelo con algún tipo de detector de eventos.

En la primera encapsulo el componente para mostrar lo que necesita y tener un fácil control de su ciclo de vida. En la segunda forma evito repetirme y lo llamo todos los componentes.

Gracias.

1
Gili Yaniv 17 ago. 2016 a las 23:12

2 respuestas

La mejor respuesta

La mejor manera es colocarlo en algún lugar una vez y usar un servicio compartido con observables para permitir que todos los componentes interesados ​​envíen mensajes.

Consulte también https://angular.io/docs /ts/latest/cookbook/component-communication.html#!#bidirectional-service

1
Günter Zöchbauer 17 ago. 2016 a las 20:15

No necesitas hacer nada de esto. Simplemente cree un único componente de inicio de sesión y rediríjalo cuando lo necesite. No te repitas a ti mismo. Tener alguna forma de validar el estado de inicio de sesión del usuario. Luego, cuando el estado de inicio de sesión no sea válido, simplemente redirija a la página de inicio de sesión con los mensajes apropiados

1
Sukhdeep Singh 17 ago. 2016 a las 22:34