在我的应用程序中,我有不同的模块。我希望他们有一个共同的导航服务。但是,当我在模块的组件中调用服务时,我收到错误。
Can't resolve all parameters for PersonalPage: (?).
可能是什么问题?
app.module.ts
import { NavService } from "../shared/nav-service/nav.service";
import { PersonalPageModule } from '../pages/personal/personal.module';
@NgModule({
...
imports: [
...
PersonalPageModule,
...
],
providers: [
...
NavService,
...
]
...
});
personal.ts
import { NavService } from "../../shared/nav-service/nav.service";
@IonicPage({
name: 'page-personal',
segment: 'personal/:hash'
})
@Component({
selector: 'page-personal',
templateUrl: 'personal.html'
})
export class PersonalPage implements OnDestroy{
constructor(private navService: NavService) {
}
}
nav.service.ts
import { Injectable } from '@angular/core';
import { PersonalPage } from '../../pages/personal/personal';
@Injectable()
export class NavService {}
答案 0 :(得分:0)
服务对于服务所在模块中定义的模块中的所有组件都是不可取的
@NgModule({
declarations: [
AppComponent, //<--this can access to the service
MyHeaderComponent ], //<--this one too
imports: [
...
Module2Module, //<--all the components defined in this module too
Module3Module, //<--all the components defined in this module too
AppRoutingModule,
DndModule.forRoot()
],
providers: [MyService]
})
如果Module2Module导入Submodule3,那么也是Submodule 3中定义的所有组件。并且Module2Module或Module3Module不包含该服务。这是服务在一个独特的模块中被声明为提供者
您的服务无需导入任何想要使用它的模块或组件,是想要使用必须导入然后在构造函数中使用的服务的组件