首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问对象,角4

如何访问对象,角4
EN

Stack Overflow用户
提问于 2018-01-17 15:49:23
回答 2查看 83关注 0票数 0

我在我的DataComponent中有一个数组,并希望通过服务将'string4‘注入到我的ConsumeComponent:

代码语言:javascript
复制
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‘的行:

代码语言:javascript
复制
this.data.values['string4'];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 15:57:15

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

  • this.data将为您提供定义为数组的data对象,即用[ ]封装的代码。
  • this.data[0]将为您提供数组的第一个对象。在您的示例中,只有一个代码,即用{ }封装的代码。
  • this.data[0].string4将从第一个对象中获得您想要的属性。

简言之:

代码语言:javascript
复制
this.mystring = this.data[0].string4;
票数 2
EN

Stack Overflow用户

发布于 2018-01-17 15:57:04

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

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

代码语言:javascript
复制
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);

      }

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48304988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档