我在UserModule中有一个带有UserDataService的项目。我想在另一个Module的Component中使用这个UserDataService。我可以将它导入EntryModule并将其列为提供者,没问题。但在我的EntryListComponent中,我无法导入它。 Visual Code告诉我文件不存在,即使我100%确定路径是正确的。
是否有任何类型的设置阻止我在其他模块中找到的组件中使用我的UserDataService?
这是文件树的一小部分:
src
|- app
|- entry
| |- entry.module.ts // has UserDataService as provider
| |- ..other stuff..
| |- entry-list
| |- entry-list.component.ts // can't import UserDataService???
|
| - user
|- user.module.ts
|- user-data.service.ts
|- ..other stuff..
这里是EntryListComponent中的相关代码:
import { Component, OnInit } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { HttpErrorResponse } from '@angular/common/http';
import { Entry } from '../entry.model';
import { EntryDataService } from '../entry-data.service';
//import { UserDataService } from '../../user/user-data.service';
import { distinctUntilChanged, debounceTime, map, filter, debounce } from 'rxjs/operators';
@Component({
selector: 'app-entry-list',
templateUrl: './entry-list.component.html',
styleUrls: ['./entry-list.component.css']
})
export class EntryListComponent implements OnInit {
private _entries : Entry[];
constructor(private _entryDataService : EntryDataService/*,
private _userDataService : UserDataService*/) { }
// ...
}
我也注意到,突然,git也没有跟踪EntryListComponent的更改......令人沮丧。但也许这是一个相关的问题。
答案 0 :(得分:1)
应该没有理由将服务导入组件。修改了我的设置快照以反映您的设置。希望它有所帮助。
user.module.ts
import { UserDataService } from './user/user-data.service';
...
providers: [
{ provide: 'userDataService', useClass: UserDataService }
],
app.module.ts
...
import { UserModule } from './user/user.module';
入门list.component.ts
...
constructor(
@Inject('userDataService') private userDataService,
) {}