【Angular】Angular+Ionic报错:No provider for *Service!

1.报错信息:

ERROR Error: Uncaught (in promise): Error: No provider for TrainService!
Error: No provider for TrainService!

这里写图片描述

第二个信息:
这里写图片描述

2.解决方案:

去报错信息中提到的TrainService.ts文件中,添加provider;具体如下:

这里写图片描述

3.源代码:

在module.ts文件中添加providers:

import {NgModule} from "@angular/core";
import {IonicPageModule} from "ionic-angular";
import {SharedModule} from "../../../platform/common/shared.module";
import {TrainingRecordComponent} from "./trainingRecord";
import {TrainService} from "../train.service";//②这里一般会自动导入,如果不能自动导入,要自己手动从文件夹下导入TrainService;

@NgModule({
  imports:  [SharedModule,IonicPageModule.forChild(TrainingRecordComponent)],
  declarations: [TrainingRecordComponent],
  providers:[TrainService]//①在这里添加providers
})
export class TrainingRecordModule {

}

4.总结:

这里我们用A来代表你具体的文件名

  1. A.service.ts(含有A.service)
  2. A.ts(含有Acomponent)
  3. A.module.ts
  4. A.scss

四个文件,其中module和Component都是组件的意思;容易弄混淆;我的理解的是,module是父组件,component是子组件,可以翻译成元件;为什么,从imports,declarations,providers可以看出,后缀都带s,module.ts文件是父,有好多子;但是一个子,不可能有好多血缘意义上的父(不然会很可怕);

1.imports:表示导入的外部结构,架构;比较宏大一些的;在module.ts文件中,写入要导入的外部包;
2.Declarations:表示父子关系,通过具体的A.ts中的Acomponnent来实施具体方法,父亲来购买原料,儿子来制作;
3.providers:表示,方法的提供者,一般都是具体的service;比如A.service;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶洲川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值