Looking for ionic2 Keywords? Try Ask4Keywords

ionic2Usando Servicios


Observaciones

Una cosa muy importante sobre el uso de servicios compartidos, es que deben incluirse en la matriz de providers del componente superior donde deben compartirse.

¿Porqué es eso? Bueno, supongamos que incluimos la referencia MyService en la matriz de providers de cada Component . Algo como:

@Component({
  templateUrl:"page1.html",
  providers: [MyService]
})

Y

@Component({
  templateUrl:"page2.html",
  providers: [MyService]
})

De esa forma , se creará una nueva instancia del servicio para cada componente, de modo que la instancia en la que una página guardará los datos será diferente de la instancia utilizada para obtener los datos. Así que eso no funcionará.

Para hacer que toda la aplicación use la misma instancia (hacer que el servicio funcione como un servicio único ), podemos agregar su referencia en el App Component la App Component siguiente manera:

@Component({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  providers: [MyService]
})

También puede agregar la referencia de MyService en ionicBootstrap(MyApp, [MyService]); Pero de acuerdo con las guías de estilo Angular2.

Proporcione servicios al inyector Angular 2 en el componente más alto donde se compartirán.

¿Por qué? El inyector Angular 2 es jerárquico.

¿Por qué? Al proporcionar el servicio a un componente de nivel superior, esa instancia se comparte y está disponible para todos los componentes secundarios de ese componente de nivel superior.

¿Por qué? Esto es ideal cuando un servicio es compartir métodos o estado.

¿Por qué? Esto no es ideal cuando dos componentes diferentes necesitan instancias diferentes de un servicio. En este escenario, sería mejor proporcionar el servicio al nivel de componente que necesita la instancia nueva e independiente.

Y

Funcionará. Simplemente no es una buena práctica. La opción del proveedor bootstrap está diseñada para configurar y anular los servicios prerregistrados propios de Angular , como su soporte de enrutamiento.

... el App Component la App Component sería la mejor opción.

Usando Servicios Ejemplos relacionados