了解模块中的Angular2依赖注入 [英] Understanding Angular2 Dependency Injection in modules

查看:117
本文介绍了了解模块中的Angular2依赖注入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经编写了一个功能模块,下面是代码

I have written a feature module , and below is the code

app.ticket.service.ts,这是我要注入的服务

app.ticket.service.ts, this is my service which i would like to inject

'use strict';    
import { Injectable } from '@angular/core' 

Injectable()
export class AppTicketService {    

    SaveTicket(): string {
return "service saved ticket";
    }       

}

app.tickets.module.ts,这是我的功能模块

'use strict';
import { NgModule } from '@angular/core';
import { SharedModule } from '../shared/app.shared.module';
import { AppCreatTicketComponent } from './app.create-ticket.component';
//-- import services
import { AppTicketService } from './app.ticket.service';

//-- import routing
import { ticketRouting } from './app.ticket.routing';
  @NgModule({
    declarations:[ AppCreatTicketComponent],
     imports:[ SharedModule,
               ticketRouting],
     exports:[],
     providers:[AppTicketService]
 })

 export class TicketsModule { }   

app.create-ticket.component.ts,这是我的组件, 属于功能模块

app.create-ticket.component.ts , this is my component , which belongs to feature module

 'use strict';
 import { Component , OnInit , Inject} from '@angular/core';    

 //-- import service
 import { AppTicketService } from './app.ticket.service';

 @Component({
 templateUrl: '/tickets/create'
 })

 export class AppCreatTicketComponent implements OnInit{

 ngOnInit(){}

 constructor(public service1 :AppTicketService) {
    let test = this.service1.SaveTicket();      
 }

 }

在运行时,我得到:

在浏览器控制台中出现无法解析AppCreatTicketComponent的所有参数:"错误

"Can't resolve all parameters for AppCreatTicketComponent:" error in browser console

要解决此问题需要修改什么?

What needs to be modified to resolve this issue?

推荐答案

要解决此问题,我必须在app.create-ticket.component.ts文件中修改构造函数参数

To fix this issue I had to modify constructor paramter in app.create-ticket.component.ts file

原始

constructor(public service1 :AppTicketService)

已修改

constructor(@Inject(AppTicketService) private service1: AppTicketService)

您可以在此处找到原因

You can find reason for this here

这篇关于了解模块中的Angular2依赖注入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆