我想向not a component的类中注入一个服务.

例如:

Myservice

import {Injectable} from '@angular/core';
@Injectable()
export class myService {
  dosomething() {
    // implementation
  }
}

MyClass

import { myService } from './myService'
export class MyClass {
  constructor(private myservice:myService) {

  }
  test() {
     this.myservice.dosomething();
  }
}

我试过了,但没用.似乎服务只需要在组件或服务中使用.

有没有办法在普通课堂上使用服务?或者在普通课堂上使用服务是一种不好的做法.

非常感谢.

推荐答案

注入只适用于Angulars依赖项注入(DI)实例化的类.

  1. 你需要

然后在某处注入MyClass时,MyService实例在被DI实例化时(在第一次注入之前)会被传递到MyClass.

  1. 另一种方法是配置定制的喷油器,如
constructor(private injector:Injector) { 
  let resolvedProviders = ReflectiveInjector.resolve([MyClass]);
  let childInjector = ReflectiveInjector.fromResolvedProviders(resolvedProviders, this.injector);

  let myClass : MyClass = childInjector.get(MyClass);
}

这样myClass将是一个MyClass实例,由Angulars DI实例化,而myService将在实例化时注入MyClass

  1. 还有一种方法是自己创建实例:
constructor(ms:myService)
let myClass = new MyClass(ms);

Typescript相关问答推荐

在OpenLayers 9.1中使用内置方法时,TypScript缩小联合类型

类型脚本如何将嵌套的通用类型展开为父通用类型

TypScript在对象上强制执行值类型时推断对象文字类型?

如何防止TypeScript允许重新分配NTFS?

是否可以根据嵌套属性来更改接口中属性的类型?

为什么typescript不能推断类的方法返回类型为泛型''

在TypeScrip中分配回调时,参数的分配方向与回调本身相反.为什么会这样呢?

无法绑定ngModel.条件ngSwitchCase中的错误

Material UI / MUI系统:我如何告诉TypeScript主题是由提供程序传递的?

Angular 15使用react 式表单在数组内部创建动态表单数组

限制返回联合的TS函数的返回类型

类型推断对React.ForwardRef()的引用参数无效

tailwind css未被应用-react

如何从接口中省略接口

如何正确地将元组表格输入到对象数组实用函数(如ZIP)中,避免在TypeScrip 5.2.2中合并所有值

为什么数字是`{[key:string]:UNKNOWN;}`的有效密钥?

如何创建允许使用带有联合类型参数的Array.from()的TS函数?

Karma Angular Unit测试如何创建未解析的promise并在单个测试中解决它,以判断当时的代码是否只在解决后运行

如何让Record中的每个值都有独立的类型?

具有枚举泛型类型的 Typescript 对象数组