为了账号安全,请及时绑定邮箱和手机立即绑定

Angular DI错误 - EXCEPTION:无法解析所有参数

Angular DI错误 - EXCEPTION:无法解析所有参数

小怪兽爱吃肉 2019-08-06 14:49:30
Angular DI错误 - EXCEPTION:无法解析所有参数我在Angular中构建了一个基本的应用程序,但是我遇到了一个奇怪的问题,我不能将服务注入到我的一个组件中。它注入了我创建的其他三个组件中的任何一个。首先,这是服务:import { Injectable } from '@angular/core';@Injectable()export class MobileService {   screenWidth: number;   screenHeight: number;   constructor() {     this.screenWidth = window.outerWidth;     this.screenHeight = window.outerHeight;     window.addEventListener("resize", this.onWindowResize.bind(this) )   }   onWindowResize(ev: Event) {     var win = (ev.currentTarget as Window);     this.screenWidth = win.outerWidth;     this.screenHeight = win.outerHeight;   }}它拒绝使用的组件:import { Component, } from '@angular/core';import { NgClass } from '@angular/common';import { ROUTER_DIRECTIVES } from '@angular/router';import {MobileService} from '../';@Component({   moduleId: module.id,   selector: 'pm-header',   templateUrl: 'header.component.html',   styleUrls: ['header.component.css'],   directives: [ROUTER_DIRECTIVES, NgClass],})export class HeaderComponent {   mobileNav: boolean = false;   constructor(public ms: MobileService) {     console.log(ms);   }}我在浏览器控制台中遇到的错误是:EXCEPTION:无法解析HeaderComponent的所有参数:(?)。我在bootstrap函数中有服务,所以它有一个提供程序。我似乎能够毫无问题地将它注入我的任何其他组件的构造函数中。
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

从直接声明它的文件中导入它而不是桶。

我不知道究竟是什么导致了这个问题,但我看到它多次提到(可能是某种循环依赖)。

它也应该通过改变桶中出口的顺序来修复(不知道细节,但也被提到)


查看完整回答
反对 回复 2019-08-06
?
呼如林

TA贡献1798条经验 获得超3个赞

除了之前给出的答案之外,当您的注射服务缺少实际@Injectable()装饰器时,似乎也会抛出此错误。因此,在调试循环依赖项和导入/导出的顺序之前,请检查您的服务是否实际已@Injectable()定义。

这适用于当前的Angular最新版Angular 2.1.0。


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 588 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信