代码之家  ›  专栏  ›  技术社区  ›  Rainer Plumer

在我实例化的自定义类中获取angular 2服务

  •  0
  • Rainer Plumer  · 技术社区  · 7 年前

    风俗 现在,我需要在该类中使用angular 2实例化的一些服务。

    // this is not angular component/service
    export default class Custom {
    
        constructor(properties) {
    
        }
        doSomething() {
            // UserService is a service that is injected into other componetns constructors, but this class is not a component.
            // Here i need a ref to the singleton 'UserService' made by angular
            let userService = someAngularFunction.getInstance('UserService');
            userService.doIt();
        }
    
    }
    
    // in some component.
    export class MyComponent implements OnInit {
        doAnotherThing() {
           let c = new Custom('some generic params');
           c.doSomething();
        }
    }
    // in some n number of other components, repeat the above.
    

    '进入 MyComponent公司 MyComponent公司 ,传递给 构造函数。但是,由于MyComponent本身不使用该服务

    风俗

    如果不是,第二个最好的选择是什么。

    1 回复  |  直到 7 年前
        1
  •  0
  •   DeborahK    7 年前

    据我所知,你有两个选择:

    1) 手动将服务传递到自定义类构造函数中。

    let x = new Custom(this.userService);
    

    2) 也可以定制a类服务。然后它将参与Angular的DI。

    有关更多信息,请参阅本文: https://blog.thoughtram.io/angular/2015/05/18/dependency-injection-in-angular-2.html