如何访问对象,角4

时间:2018-01-17 15:49:23

标签: angular

我的DataComponent中有这个数组,想要注入' string4'通过服务到我的ConsumeComponent:

export class DataComponent {
  mystring: string = '';

  constructor(private myService: myService) {}

  data = [
    {
      string1: '',
      string2: '',
      string3: '',
      string4: ''
    }
  ];

  consumefunction() {
    this.mystring = this.data.values['string4'];
    this.myService.anotherfunc(this.mystring);
  }
}

但我没有获得对象' string4'与行:

this.data.values['string4'];

2 个答案:

答案 0 :(得分:2)

data是一个对象数组,如果要从数组中的对象检索属性,则需要执行以下操作:

  • this.data会为您提供您定义为数组的data对象,该代码使用[ ]封装。
  • this.data[0]将为您提供数组的第一个对象。在您的情况下,只有一个,用{ }封装的代码段。
  • this.data[0].string4会从第一个对象中获取您想要的属性。

简而言之:

this.mystring = this.data[0].string4;

答案 1 :(得分:0)

代码有两个问题。一个是data是构造函数中的局部变量,而不是类中的成员变量,因此无法通过this.data访问它。第二个问题是数据中缺少value字段。

通过以下更改,您应该可以访问它

export class DataComponent {

     mystring: string = '';

     constructor(private myService: myService) {}

     // change this line
     this.data = {
        values: {
          string1: '',
          string2: '',
          string3: '',
          string4: ''
        }
     };

      consumefunction () {

      this.mystring = this.data.values['string4'];

      this.myService.anotherfunc(this.mystring);

      }

}