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

谢尔盖

我有一个带有单个 @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 属性 - Member 对象。

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

用户4676340

不是一个好习惯,但您应该将该对象传播到您的组件中:

ngOnInit() {
  Object.entries(this.member).forEach(([key, value]) => this[key] = value);
  // OR
  Object.assign(this, this.member);
}

您现在可以像使用类属性一样使用它们。请注意,它会覆盖您的类上具有相同名称的任何其他属性,因此您应该小心该解决方案并使用member.XXX.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对象属性分配与解构?

多对象属性分配

无法分配为只读对象“ [object Object]”的属性“ name”

如何在此React组件中修复“无法分配为仅读取对象的属性'样式'”?

在BUILD移相器中为对象分配属性值

将文字对象设置为组件的Input属性作为已知对象类

无法在Angular Service中为对象的属性分配值

如何从对象的属性渲染组件?

未捕获的TypeError:无法分配为只读对象“#<Object>”的属性“

无法分配为只读对象“ [object Object]”的“ closed”属性

Ngrx:无法分配为只读对象“ [Object]”的属性“ Property”

ReactJs / Typescript:使组件状态对象和属性为只读

关于javascript对象的属性分配

无法分配为深度复制对象上的只读属性

TypeError:无法分配为只读对象“#<Object>”的属性“ statusKnown”

检测对象的属性是否为对象

是否为对象的功能和属性分配了单独的内存?

JSON对象属性为NULL

为一个对象分配多个属性

动态为对象属性分配值

JavaScript对象属性分配

如何在MATLAB中为对象的属性分配指针?

对象属性为零,尽管为其分配了值

如何将<input>“名称”存储为对象的属性,然后将匹配的<input>“ value”存储为该对象的属性的值?

使用组件访问@input目标对象的属性

使用for循环为对象属性分配多个值

对象属性为日期的过滤对象数组

如何在 VBA 中为对象属性分配变量

当我没有为对象分配任何属性时出现属性错误