¿Qué es viewProviders en el siguiente código? ¿Y en qué se diferencia de los proveedores?
class Greeter {
greet(name:string) {
return 'Hello ' + name + '!';
}
}
@Component({
selector: 'greet',
viewProviders: [
Greeter
],
template: `<needs-greeter></needs-greeter>`
})
class HelloWorld {
}
En su ejemplo, no hay diferencia entre proveedores y viewProviders porque la plantilla de HelloWorld no usa <ng-content>
. Si estaba proyectando contenido dentro <ng-content>...</ng-content>
, Greeter no podría inyectarse en el contenido proyectado porque está usando
viewProviders: [Greeter]
Si quisiera que Greeter se inyectara potencialmente en el contenido proyectado, usaría
providers: [Greeter]
Por lo tanto, viewProviders
limita el proveedor a niños que no sean contenidos proyectados, mientras que providers
permite que todos los niños usen el proveedor. El valor es que le viewProviders
permite evitar que el contenido proyectado interfiera con sus servicios, lo que podría ser especialmente útil en las bibliotecas.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras