Dependency injection 将一个服务注入另一个服务

Dependency injection 将一个服务注入另一个服务,dependency-injection,angular,dart,Dependency Injection,Angular,Dart,我想将一个服务注入另一个服务,但由于某些原因,“@inject”装饰器被忽略。例如,以下服务依赖于其他服务: @Injectable() class MyService { final AnotherService _service; MyService(@Inject(AnotherService) this._service); // ... more methods } Angular2抛出以下错误: 原始例外:没有其他服务的提供商 我使用“@Inject”装饰程序的方式

我想将一个服务注入另一个服务,但由于某些原因,“@inject”装饰器被忽略。例如,以下服务依赖于其他服务:

@Injectable()
class MyService {
    final AnotherService _service;
    MyService(@Inject(AnotherService) this._service);
// ... more methods
}
Angular2抛出以下错误:

原始例外:没有其他服务的提供商


我使用“@Inject”装饰程序的方式是否不好?

一些信息缺失,无法完全解决此问题,但例外情况是,注入器没有足够的信息来解析另一个服务

angular中的DI构建在层次结构上,从根注入器开始,根注入器是在angular应用程序引导过程中创建的

每个层次结构都是一个新的注入器实例,从下到上解析依赖关系,即:如果注入器无法解析,它将要求其父级解析。这将继续进行,直到到达没有母喷油器(根部喷油器)的喷油器

在为MyService声明提供程序之前,请确保为其他服务声明提供程序


只需将一个提供程序添加到您提供给引导程序的提供程序阵列中的另一个服务。

一些信息缺失,无法完全解决此问题,但例外情况是,注入器没有足够的信息来解析另一个服务

angular中的DI构建在层次结构上,从根注入器开始,根注入器是在angular应用程序引导过程中创建的

每个层次结构都是一个新的注入器实例,从下到上解析依赖关系,即:如果注入器无法解析,它将要求其父级解析。这将继续进行,直到到达没有母喷油器(根部喷油器)的喷油器

在为MyService声明提供程序之前,请确保为其他服务声明提供程序


只需将一个提供程序添加到您提供给引导程序的提供程序数组中的另一个服务。

您是否从“angular2/core”导入了
import{Inject}?例外意味着他。。。这是一个角度异常。您是否从'angular2/core'导入了
import{Inject}?例外意味着他。。。这是一个角度上的例外。谢谢你的回答。这正是我所怀疑的。我想知道@Inject()指令的用途是什么,因为它可以省略,并且什么也不做。
@Inject
装饰器允许(除其他外)注入字符串标记(与类型标记相对),请参见OpaqueToken。还请注意,当您在类上声明
@Injectable
时,您会告诉注入器该类可以被注入,这使得
@injection
对于键入的令牌是多余的(对于字符串令牌,您仍然需要它),谢谢您的回答。这正是我所怀疑的。我想知道@Inject()指令的用途是什么,因为它可以省略,并且什么也不做。
@Inject
装饰器允许(除其他外)注入字符串标记(与类型标记相对),请参见OpaqueToken。还请注意,当您在类上声明
@Injectable
时,您会告诉注入器该类可以被注入,这使得
@injection
对于类型化标记是多余的(对于字符串标记,您仍然需要它)