gpt4 book ai didi

Angular 错误处理程序 - 如何从错误中获取组件上下文?

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:45 25 4
gpt4 key购买 nike

当出现 typescript 错误时,我需要将所有组件的属性值发送到REST API。 .如果我获得组件的 context(this) ,这对我来说真的很有帮助,我可以使用它来获取该组件中所有属性的值。

有什么办法可以实现吗? ngDebugContext.view 具有上下文,但在 PROD 模式下不可用。

[编辑]

例如,让我们采用以下组件

export class MyComponent implements OnInit{
constructor(service:BaseService){}

public first = 'first'; //.................... LINE 1
public second = ['a','b'];//.................. LINE 2

ngOnInit(){
let a = null;
console.log(a.name); //................... LINE 3
}

}

所以在第 3 行将出现类型错误,控件将转到错误处理程序服务。

@Injectable()
export class ErrorHandlerService extends ErrorHandler {
...................
...................
handleError(error: Error | HttpErrorResponse) {
//i need to get the values from LINE 1 & LINE 2 here..
}
}

一旦控件到达错误处理程序,有关 MyComponent 的所有详细信息都会丢失,我想检索这些详细信息。

最佳答案

在 Debug模式下,也许你可以尝试这样的事情

handleError(error: Error | HttpErrorResponse) {
if(!(error instanceof HttpErrorResponse))
{
let component : any = error.ngDebugContext.elView? error.ngDebugContext.elView.component : null;
if(component instanceof MyComponent)
{
console.log(`Error in MyComponent: first ${component.first} second ${component.second}`);
}
}
}

如果在生产模式下可能不工作,如果在生产模式下可能不工作

关于Angular 错误处理程序 - 如何从错误中获取组件上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56805495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com