angular2服务的生命周期方法是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (310)

是否有可能为使用注释的服务生命周期挂钩@Injectable()

import {Component, Injectable, OnInit, OnDestroy} from 'angular2/core';

@Injectable()
export class SampleService implements OnInit, OnDestroy {
    ngOnInit() {
        console.log("OnInit")
    }
    ngOnDestroy() {
        console.log("OnDestroy")
    }
}

@Component({
  selector: "sample",
  template: "<div>Sample Component</div>",
  providers: [ SampleService ]
})
export class SampleComponent {
  constructor() { private _sampleService: SampleService }
}
提问于
用户回答回答于

你显示的ngOn *生命周期钩子仅适用于组件。你可以将另一个服务(称为TrackServiceLifecycles)注入到SampleService中,并让SampleService的构造函数()在其他服务上调用一个方法来通知它已创建。

用户回答回答于

当你的类的一个对象被创建时,这个类的构造函数被调用,所以这就是你的“OnInit”。但是你通常无法控制它,JavaScript中没有解构器的概念了:

@Injectable()
export class SampleService {
    constructor() {
        console.log('Sample service is created');
    }
}

扫码关注云+社区

领取腾讯云代金券