为什么在Angular服务中注入时ngOnInit不会被调用?
你好!我是Angular和TypeScript的新手,遇到了一个奇怪的问题。我有一个服务,需要在创建时执行一些初始化操作。我决定使用Angular钩子,特别是`ngOnInit`,以便这段代码自动执行。但它不起作用——`ngOnInit`方法根本没有被调用。这是我的代码:
```typescript
import { Injectable, OnInit } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class DataService implements OnInit {
public data: any[] = [];
constructor() {
console.log('Constructor called');
}
ngOnInit(): void {
console.log('ngOnInit called');
this.data = ['item1', 'item2'];
}
}
```
我期望当服务被注入到组件中时,`ngOnInit`会自动调用,但在控制台中只看到“Constructor called”消息。我阅读了文档,但无法理解错误在哪里。在组件中,`ngOnInit`工作得很好。也许我导入接口的方式不对?或者