zoukankan      html  css  js  c++  java
  • [Angular 9] Improved Dependency Injection with the new providedIn scopes 'any' and 'platform'

    @Injectable({
      providedIn: "root" | "any" | "platform"
    })
    export class MyService {}

    More

    ProvidedIn: root

    Every service defined with 'root' will be provided in the root injector and is a singleton for the whole application. Lazy modules will use the instance from root.

    You will still using 'root' for you application for most of time.

    ProvidedIn: platform

    Every service defined with 'platform' will be provided in the platform injector and is a singleton for all applications. Lazy modules will use the instance from platform.

    The difference between 'root' and 'platform' is only noticeable when running multiple Angular application in the same window. Both make sure that only one singleton exists even for lazy loaded modules. But when running two applications in the same window, each application has it's own root injector but both share the platform injector.

    This means that the best use case for providedIn: 'platform' is for sharing services over application boundaries. E.g. with Angular Elements.

    If you are using Micro Front, and your app contains multi small apps and angular element, for all those apps want to share the same service, for example, AuthService, you can use 'platform'.

    ProvidedIn: any

    Every service defined with 'any' will be provided in every module it is used. That means there might be multiple instances of the same service. That means that every lazy loaded module has it's own instance of the service. All eagerly loaded modules share one instance provided by the root module injector.

    In the following example is the service used twice. Once within an eagerly loaded module (provided by root) and once in Lazy Module B (provided by its child injector).

    The idea is similar to AngularJS '.factory()', evey times you use .factory injection, it creates a new instance. 

  • 相关阅读:
    sql强化训练(4)
    Python中用PIL/Pillow裁剪图片
    Python中用PIL/Pillow旋转图片
    server项目部署服务器
    ZOJ Monthly, June 2012 [7月9日暑假集训]
    模线性方程(递归版+迭代版)& 扩展欧几里德
    线性筛素数
    First Bangladeshi Contest 20122013 Season[7月12日暑假集训]
    36th ACM/ICPC Asia Regional Daejeon(韩国大田) [7月7日暑假集训]
    MillerRabin 素性测试
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12322637.html
Copyright © 2011-2022 走看看