我有一个棱角分明的应用程序,经过一些最近的重构,我收到了一个我不知道的新的神秘错误消息。
例外:错误:未捕获(在承诺中):TypeError:无法读取null的属性'isSkipSelf'
当我在构造函数中将变量类型设置为服务(ProductMeshGradientService)时,开始发生此错误。如果我在构造函数中删除了引用,则该应用程序将按预期工作。
总结代码:
服务中断 注:productMeshGradientService由于调试原因,我目前根本没有使用。因此,我可以确认该错误与使用服务无关,而是由仅将变量设置为服务类型引起的。无论是Http或ProductImageTextureServices引起任何问题。
import {
Injectable,
EventEmitter
} from '@angular/core';
import {
Http,
Response
} from '@angular/http';
import { ProductMeshGradientService } from '../../services/product.mesh-gradient/product.mesh-gradient.service';
@Injectable()
export class TextureService {
constructor(
private http: Http,
private productMeshGradientService: ProductMeshGradientService ,
private productImageTextureService: ProductImageTextureService) { }
// Some methods are here.
}
Run Code Online (Sandbox Code Playgroud)
正在导入(缩写)的服务注意:此文件存在非常相似的问题,因为如果我删除了在构造函数中设置的变量,则错误会消失。唯一的区别是在此文件中,我需要同时删除productService和productCanvasService。
import { Injectable } from '@angular/core';
import { ProductService } from '../product/product.service';
import { ProductDropService } from '../product.drop/product.drop.service';
import { ProductCanvasService } from '../product.canvas/product.canvas.service';
@Injectable()
export class ProductMeshGradientService {
constructor ( private productService: ProductService,
private productCanvasService: ProductCanvasService ) {
}
// Some methods live here.
}
Run Code Online (Sandbox Code Playgroud)
该错误已在角度仓库中报告:https : //github.com/angular/angular/issues/9332
该问题是由注入组件注释的构造函数或指令/提供程序条目中的未定义值引起的。
未定义的值是由导入引起的,这些输入undefined由于桶顺序问题或有效的循环依赖关系而解决
看起来您只是ProductImageTextureService在TextureService模块中缺少的导入。
但是,您是说问题出在ProductMeshGradientService。我将在chrome中调试此代码,在行上设置断点,export class ...然后查看这些导入模块的值。如果未定义,则加载该模块会出现问题。
您也可以尝试更新到RC3,因为我认为上面提到的问题已在该版本中解决,它应提供更清晰的错误消息。
| 归档时间: |
|
| 查看次数: |
6973 次 |
| 最近记录: |