【问题标题】:How can i import a service from another module如何从另一个模块导入服务
【发布时间】:2018-07-23 19:12:55
【问题描述】:

在我的应用程序中,我有不同的模块。我希望他们拥有一项通用的导航服务。但是当我在模块的组件中调用服务时,我得到了一个错误。

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,
         ...
     ]
     ...
});

个人.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 {}

【问题讨论】:

  • 你的NavService 也是你的PersonalPageModule 的一部分吗?
  • @Aravind 没有。但我尝试将 NavService 添加到 PersonalPageModule。它没有帮助
  • 听起来像是典型的循环依赖
  • remove import {PersonalPage} from nav.service.ts 并检查您的 PersonalPageModule 是否导入了 PersonalPageComponent(必须在“声明”中
  • @Eliseo 但如果我想从其他模块使用此服务,不仅在 PersonalPageModule 中。我该怎么办?

标签: javascript angular ionic-framework ionic2


【解决方案1】:

服务对在该服务所在的模块中定义的模块中的所有组件负责

@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 不包括该服务。那就是服务在一个独特的模块中被声明为提供者

你的服务不需要导入任何想要使用的模块或组件,是要使用服务的组件,然后必须导入并在构造函数中使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 2019-01-20
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    相关资源
    最近更新 更多