Angular 角度访问数据子密钥问题更改密钥

Angular 角度访问数据子密钥问题更改密钥,angular,typescript,Angular,Typescript,我有一些数据: data = [ { title: 'My Title', settings: { hasfooter: false } } ]; 我有这个功能: updateKeyValue(key?: any, value?: any): void { this.data[key] = value; } 现在我这样称呼它: <button (click)="updateKeyValue(dat

我有一些数据:

data = [
    {
      title: 'My Title',
      settings: {
        hasfooter: false
      }
    }
  ];
我有这个功能:

updateKeyValue(key?: any, value?: any): void {
    this.data[key] = value;
}
现在我这样称呼它:

<button (click)="updateKeyValue(data[0].settings.hasfooter, true)">Change</button>
更改
我的问题是它没有改变hasfooter的值


如何解决此问题?

您的数据与您的使用方式不匹配

this.data[key] = value;
此语句表示This.data是一个字典或散列,使用字符串(键)进行访问

但使用这种用法:

updateKeyValue(data[0].settings.hasfooter
您现在将“数据”视为一个数组。特别是一系列字典

那是哪一个呢?这是数组还是字典?在开始使用数据之前,您需要确定数据是什么

this.data[key] = value;
也许你的意思是这样

(click)="updateKeyValue(0, true)"

updateKeyValue(index: number, value?: any): void {
   this.data[index].settings.hasfooter = value;
}

因为,在键中还传递值,需要传递的是键名,而不是值