我正在尝试获取对象数组内的属性值,该数组是对象的属性-> this.form.data.output [0] .output_total。数组名称,索引和属性名称作为参数传递并分配给变量。
我尝试使用eval()
,并尝试登录到控制台,但结果为Cannot read property data of undefined
这是我调用函数的方式:
(keyup)="form.onNumberChanges($event, 'output', 0, 'output_total')"
代码如下:
onNumberChanges: (event, params, index = null, properties = null) => {
if (index !== null) {
console.log(`this.form.data.${params}[${index}].${properties}`);
/* I am checking if the string isn't proper, but its result as same as I expected --> this.data.output[0].output_total */
console.log(eval(`this.form.data.${params}[${index}].${properties}`));
/* resulting cannot read property data of undefined */
}
我希望我得到的值在那个范围内(0/2/3 /或其他任何数字)。有什么线索吗?
答案 0 :(得分:0)
尝试将函数更改为以下内容,因为未定义表单看起来像与上下文相关的问题
onNumberChanges(event, params, index = null, properties = null) {
并转换为
console.log(this.form.data[params][index][properties])
答案 1 :(得分:0)
您要在哪个浏览器中进行测试?
确保IE不支持ES6一些方法,例如this.form.data.${params}[${index}].${properties}