Angular 加载网络摄像头组件后,Appcomponent变量未定义
实际上,我的问题是,我有一个带有全局变量的AppComponent,在ngOnInit期间,我将值分配给全局变量,这对于正在加载的所有其他组件来说都很好。但是对于网络摄像头组件,一旦打开,我会捕获图像并在单击“发送”按钮后单击“发送”按钮,它应该转到SendData()方法,该方法应该提供全局变量url来发送数据,但这次全局变量未定义!为什么会这样?特别是对于网络摄像头组件,只有这种类型的错误 我试图在ngOnInit方法中将全局变量赋值给const变量,但它也重写了undefinedAngular 加载网络摄像头组件后,Appcomponent变量未定义,angular,Angular,实际上,我的问题是,我有一个带有全局变量的AppComponent,在ngOnInit期间,我将值分配给全局变量,这对于正在加载的所有其他组件来说都很好。但是对于网络摄像头组件,一旦打开,我会捕获图像并在单击“发送”按钮后单击“发送”按钮,它应该转到SendData()方法,该方法应该提供全局变量url来发送数据,但这次全局变量未定义!为什么会这样?特别是对于网络摄像头组件,只有这种类型的错误 我试图在ngOnInit方法中将全局变量赋值给const变量,但它也重写了undefined priv
private url: any;
ngOnInit() {
this.url= 'some url';
}
// after click the send button in webcam component it call sendMessage()
public sendMessage(message: any) {
const formdata: FormData = new FormData();
console.log(message);
formdata.append('text', message);
formdata.append('data', new Blob([JSON.stringify(message)], { type:'application/json' }));
this.webService.makeRequest(this.url, // here the url is undefined only for after webcam component
'POST', formdata, null,
(res: any) => {
console.log(res.status);
},
(err) => {
this.console.log(err);
});
}
//在webCamComponent.ts中
sendImage() {
const formData: FormData = new FormData();
formData.append('file', new File([this.dataURItoBlob(this.webcamImage.imageAsBase64)], names, { type: 'image/jpeg' }));
const uploadUrl = 'https://10.3.3.3/fileUpload';
this.webService.makeRequest(uploadUrl,
'POST', formData, null, (res: any) => {
if(res.status==='success'){
this.appComponent.sendMessage('IMAGE SUCCESS');
}
},
(err) => {
this.loggerService.error(err);
this.appComponent.sendMessage(err);
}
);
this.dialogRef.close(formData);
}
//期望
this.webService.makeRequest(this.url, // I need the url which i assigned in ngOnInit(), for other component i can able to get url from this same method, only for webcam i cant get.
'POST', formdata, null,
(res: any) => {
console.log(res.status);
},
(err) => {
this.console.log(err);
});
}我是打字脚本,你可以
export class MyClass{
public static MY_URL: string = "Something";
}
现在,您可以在应用程序中的任何位置编写:
MyClass.MY_URL
要访问该值,您可以
export class MyClass{
public static MY_URL: string = "Something";
}
现在,您可以在应用程序中的任何位置编写:
MyClass.MY_URL
要访问该值请在调用sendMessage方法的地方添加一段代码好吗?我通过构造函数注入appComponent,从webCamComponent调用sendMessage方法。没关系,但请向我们显示您实际引用的代码
.sendMessage
方法。我这样问的原因是,请与您的问题更相关。我在发送sendMessage()的地方添加了代码,请检查。我现在正在检查,乍一看我觉得很好。这很奇怪。你有没有可能用最少的代码在stackblitz上复制这个问题?你能在调用sendMessage方法的地方添加一段代码吗?我通过构造函数注入appComponent,从webCamComponent调用sendMessage方法。没关系,但是,请向我们展示您实际引用的.sendMessage
方法的代码。我这样问的原因是,请与您的问题更相关。我在发送sendMessage()的地方添加了代码,请检查。我现在正在检查,乍一看我觉得很好。这很奇怪。你有没有可能用最少的代码在stackblitz上复制这个问题?是的,我发现答案实际上也得到了未定义的url,因为我从的属性(我手动创建)得到了url,这就是为什么在Web cam组件之后,appcomponent的ngOnInit无法访问,因此我将url声明为单独的global.ts文件,无论如何,谢谢!是的,我发现答案实际上也得到了未定义的url,因为我从的属性(我手动创建)得到了url,这就是为什么在Web cam组件之后,appcomponent的ngOnInit无法访问的原因,所以我将url声明为单独的global.ts文件,无论如何,谢谢!