'ANGULAR Components array key in result get value by id

this.crudService.get('user.php?mode=test')
.subscribe((data:any) => {


  { for (var key in data) { this[key] = data[key]; } };

  }     
);

This use to work on angular 7 now on angular 13 i get this error (look image)

In template i was using the values for example in json string was and array and i had users, in template was {{users}} , {{posts}} etc.. now the this[key] give error , please help me out its very important can't find solution



Solution 1:[1]

i'll show an example code, and then applied to your code:

Example

// creating global variables to receive the values
users: any = null;
posts: any = null;

// simulating the data you will receive
data: any[] = [
  {users: ['user1', 'user2', 'user3']},
  {posts: ['post1', 'post2', 'post3']}
];

getCrudService() {
  // access each object of the array
  this.data.forEach(obj => {
      // getting keys name and doing something with it
      Object.keys(obj).forEach(key => {
          // accessing global variable and setting array value by key name
          this[String(key)] = obj[String(key)]
      })
  })
}

Apllied to your code

this.crudService.get('user.php?mode=test').subscribe((data:any) => {
    data.forEach(obj => {
        Object.keys(obj).forEach(key => {
            this[String(key)] = obj[String(key)]
        });
    });
});

I hope it helped you, if you need help, just reply me.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1