我的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'];
答案 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);
}
}