为什么Angular2不能注入我的服务?
我正在编写一个plnkr来测试一些路由问题突然出现这个错误消息,无论我在代码中改变了什么都不会消失:
这是代码的相关部分: export class EmployeeListComponent { employees: Employee[]; constructor(private _employeeService: EmployeeService) { _employeeService.getAll().subscribe(employees => this.employees = employees); } } 所以似乎Angular无法解析EmployeeService,对吧?我在上面的片段中对此进行了评论,当然,没有错误. 我忘了在main.ts或app.component.ts中注册吗?不, import { Component } from '@angular/core'; import { ROUTER_DIRECTIVES } from '@angular/router'; import { EmployeeService } from './employee.service'; @Component({ selector: 'plk-app',template: '<router-outlet></router-outlet>',directives: [ ROUTER_DIRECTIVES ],providers: [ EmployeeService ] }) export class AppComponent { } 我应该在main.ts注册吗?好吧,我在第一次出现错误时就把它移到了app.component.ts来检查是否会修复它,但事实并非如此. 目前我无法看到森林中的树木,而Angular的错误消息并没有真正帮助(它们从来没有).这里有人能发现这个问题吗? plnkr可以找到here. 解决方法
在访问几个问题后,我发现由于缺少TypeScript编译器而出现此问题.如果您没有使用typescript编译器,那么您需要使用’@ angular / core’中的’Inject’来显式注入服务.我已经尝试过你提供的plunker及其工作.
在您的情况下,您需要在employee-list.component.ts中进行更改.从@ angular / core导入Inject并在构造函数中显式注入您的服务,如: constructor(@Inject(EmployeeService) private employeeService: EmployeeService){} 如果您发现该解决方案对您有帮助,请随意提出任何问题并接受我的回答. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |