将@Input()对象属性分配给组件

时间:2019-03-19 10:58:45

标签: javascript angular typescript object templates

我有一个带有单个@Input元素的Angular组件:

@Input('member') member: Member;

Member界面如下:

export interface Member {
  name: string;
  surname: string;
  display_name: string;
  positions: number[];
  image_url: string;
  email: string;
  address: string;
  office_phone: string;
  phone: string;
  whatsapp: string;
  skype: string;
}

我想从html模板访问成员字段,例如{{ name }}{{ email }}等。 没有为每个前缀。

例如,我不想不想访问这些属性,例如{{ member.name }}{{ member.email }},我喜欢快捷方式版本。

该组件将只有一个@Inpurt属性-成员对象。

有没有很好的方法来重新分配成员。 Angular组件的属性?或其他使用快捷方式的方法,我在上面提到过?

1 个答案:

答案 0 :(得分:3)

不好的做法,但是您应该将该对象传播到组件中:

m1 = df['Status'].eq('canceled').groupby(df['Customer']).transform('all')
m2 = df['Customer'].duplicated(keep=False)

df['new_status'] = np.where(m1 & m2, 'cancelled', '')
print (df)
  Customer    Status new_status  duplicated
0        X  canceled                      0
1        X  canceled                      1
2        X    active                      2
3        Y  canceled                      0
4        A  canceled  cancelled           0
5        A  canceled  cancelled           1
6        B    active                      0
7        B  canceled                      1

您现在可以像使用类属性一样使用它们。请注意,它将覆盖您的类上具有相同名称的任何其他属性,因此您应谨慎使用该解决方案,而应使用ngOnInit() { Object.entries(this.member).forEach(([key, value]) => this[key] = value); // OR Object.assign(this, this.member); }