Abu*_*ala 5 javascript angular
我在下面有一个抽象类:
import { Inject } from '@angular/core';
import { TestService } from '../test-service';
export abstract class DummyAbstract {
constructor (
private testService: TestService
) {
}
abstract thisisimp();
}
Run Code Online (Sandbox Code Playgroud)
我有一个孩子上以下课:
import { Injectable } from '@angular/core';
import { DummyAbstract } from './dummy-abstract';
@Injectable({
providedIn: 'root'
})
export class ThisChild extends DummyAbstract {
thisisimp() {
return 'text';
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在其他服务中加载子类时出现问题
import { Injectable } from '@angular/core';
import { ThisChild } from './this-child';
@Injectable({
providedIn: 'root'
})
export class SomeOtherService {
constructor(private thisChild: ThisChild) {
}
}
Run Code Online (Sandbox Code Playgroud)
它引发以下错误
错误TypeError:无法在NgModuleRef_.push ../ node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get(core.js:9057)的resolveNgModuleDep(core.js:8353)处读取未定义的属性'ngInjectableDef'在injectArgs(core.js:1437)在injectArgs(core.js:1437)在createProviderInstance(core.js:8389)在_callFactory(core.js: 8431)在core.js:1491 在resolveNgModuleDep(core.js:8364) )在NgModuleRef .push ../ node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get(core.js:9057)在注入(core.js:1403)
Angular Dependency Injection系统仅提取/解析
Injectable编写装饰器的类的依赖关系。您必须自己处理其他事情。
DummyAbstract构造函数具有TestService依赖项的构造函数,并且在使用ThisChildprovider进行扩展时,尚未传递TestService给的构造函数DummyAbstract。每当遇到这种情况时,都必须使用super方法调用基类构造函数,将依赖项显式传递给父类。
export class ThisChild extends DummyAbstract {
constructor(testService: TestService) { // no private or public
super(testService); //calling base class constructor with dependency.
}
thisisimp() {
return 'text';
}
}
Run Code Online (Sandbox Code Playgroud)
由于此问题的 google 搜索结果不多,因此我将在此处提供我的解决方案(与此特定问题无关,但具有相同的错误消息)。所以基本上我也遇到了这个问题:错误类型错误:无法读取未定义的属性 'ngInjectableDef' 在错误开始出现之前和之后,代码中没有任何更改。我所要做的就是删除 node_module 文件夹,刷新节点缓存并重新安装它,它开始工作。据我所知,这与一些有角度的材料变化有关。
| 归档时间: |
|
| 查看次数: |
3462 次 |
| 最近记录: |