angular - 尝试访问数组时未定义数组
问题描述
我在打字稿中有一个服务类,在该类中我声明了一个公共的字符串数组,但是当我尝试推入该数组时,它会引发未定义的异常。我在这里做错了什么?
无法读取未定义的属性“audioInput”
该类的源代码是:
export class AudioService {
public audioInput:Array<String>=[];
_navigator=<any> navigator;
constructor(){
}
getDevices(){
this._navigator.mediaDevices.enumerateDevices().then(this.gotDevices)
}
gotDevices(deviceInfos) : any {
for (let i = 0; i !== deviceInfos.length; ++i) {
const deviceInfo = deviceInfos[i];
let value = deviceInfo.deviceId;
if (deviceInfo.kind === 'audioinput') {
this.audioInput.push(deviceInfo.label);
}
}
}
}
解决方案
如果您在科尔多瓦内部访问“这个”。它指的是窗口对象。你需要定义 let me = this;
export class AudioService {
public audioInput:Array<String>=[];
_navigator=<any> navigator;
constructor(){
}
getDevices(){
this._navigator.mediaDevices.enumerateDevices().then(this.gotDevices)
}
gotDevices(deviceInfos) : any {
let me = this.
for (let i = 0; i !== deviceInfos.length; ++i) {
const deviceInfo = deviceInfos[i];
let value = deviceInfo.deviceId;
if (deviceInfo.kind === 'audioinput') {
me.audioInput.push(deviceInfo.label);
}
}
}
}
推荐阅读
- android - Zebra Datawedge 6.2.24 启用/禁用在 Zebra TC75 上不起作用
- python - 如何删除sklearn的部分依赖图中的十分位标记?
- nginx - Kubernetes Ingress 重定向到不同于 nginx 根目录的目录
- javascript - mongoDB Compass 中的正则表达式。过滤所有不包含某些字符的数据
- python - 使用标签编码器时出现 TypeError
- javascript - 如何使用“-”访问 json 字段,例如 'data-id': 'smth'
- sql - 标准表达式中的数据类型不匹配
- c# - 如何创建哈希方案并使用 NRedisSearch 执行搜索
- google-cloud-platform - 如何访问我的谷歌云实例虚拟机中的存储空间?
- angular - 无法使用 map(res => res["data"]) Angular 12 从数据库中获取数据