在括号表示法中使用动态键时,无法访问简单对象中的属性。这是我的代码:
import { Component, OnInit } from '@angular/core';
import { DisplayFeederService } from '../../services/display-feeder/display-feeder.service';
interface IData {
[key: string]: any;
}
@Component({
selector: 'display',
templateUrl: './display.component.html',
styleUrls: ['./display.component.css']
})
export class DisplayComponent implements OnInit {
measurementValue: any;
measurementType: any;
private typesTable: IData = {
vdc: 'DC Volt'
};
constructor(private displayFeederService: DisplayFeederService) {
this.displayFeederService.displayData$.subscribe(data => {
this.measurementValue = data.val;
this.measurementType = this.typesTable[data.type];
console.log(this.typesTable, data.type, this.typesTable[data.type])
})
}
ngOnInit() {
}
}
在console.log中我得到了这个:
对象{vdc:" DC Volt"}" vdc"未定义
所以我的对象有效,动态键是正确的但是synatx对象[动态键]对我不起作用。如果我尝试像这样访问它,那么它可以正常使用,但它不是我想要的,因为将来我会有更多的动态密钥。
你能指导我走向正确的方向吗? 感谢
答案 0 :(得分:0)
所以我的问题是,即使在开发人员工具控制台中它出现为“vdc”,我的微控制器也在发送“vdc \ n”。一个空白使我松散了一半的头发。谢谢大家。