我明天做 Angular 开发的时候, 在 App.module.js 文件里编写代码:
export class AppModule {constructor(private cart:Cart){console.log('Jerry:', this.cart);
}
}
遇到下列谬误:
No suitable injection token for parameter ‘cart’ of class ‘AppModule’. Consider using the @Inject decorator to specify an injection token.(-992003)
这个谬误音讯的意思是,在 AppModule 类中的构造函数中应用了一个名为 cart 的参数,然而 Angular 没有找到一个适合的注入令牌(Injection Token)来为该参数提供一个值。因而,编译器倡议应用 @Inject 装璜器来显式地指定注入令牌。
在 Angular 中,注入令牌是用来标识一个特定的依赖项的,它通常是一个字符串或一个符号(Symbol)。Angular 会依据注入令牌来查找对应的依赖项,并将其注入到组件或服务中。如果没有为参数提供注入令牌,则 Angular 将无奈确定应该注入哪个依赖项,从而导致谬误。
解决这个谬误的办法是,应用 @Inject 装璜器为 cart 参数显式地指定一个注入令牌。例如,如果 cart 参数依赖于一个名为 CartService 的服务,则能够将其注入令牌指定为 CartService:
import {Inject} from '@angular/core';
import {CartService} from './cart.service';
export class AppModule {constructor(@Inject(CartService) private cart:CartService){console.log('Jerry:', this.cart);
}
}
在下面的代码中,应用了 @Inject 装璜器将注入令牌指定为 CartService。这样 Angular 就会依据注入令牌来查找 CartService 服务,并将其注入到 cart 参数中。
这个数字 -992003 是谬误音讯的错误码,它是由 Angular 编译器生成的。每个错误码都对应着一个特定的谬误,这样有助于开发人员疾速定位和解决问题。
在这个特定的谬误音讯中,错误码 -992003 示意“找不到适宜的注入令牌”,即短少依赖项的注入令牌。当编译器发现这种状况时,会生成这个谬误音讯,并提醒开发人员应用 @Inject 装璜器来显式地指定注入令牌。
须要留神的是,错误码并不是惟一的标识谬误的形式,因为它们可能会因为不同版本的编译器和工具而有所变动。因而,当遇到谬误时,倡议不仅仅依赖于错误码,而是要仔细阅读谬误音讯,了解谬误的具体含意,并依据提醒来解决问题。