Angular 订阅@Input 对象变化

标签 angular subscribe

我的父组件中有一个对象,看起来像这样并传递给我的子组件 (app-custom-component):

myObject = {
  name: 'John'
}
...
<app-custom-component [inputObject]="myObject"></app-custom-component>

在我的子组件 (app-custom-component) 中,我这样做:

@Input() inputObject;
displayName = '';

ngOnInit() {
  this.displayName = this.inputObject.name;
}
...
<label>{{displayName}}</label>

但是当我在父组件中更改 myObject.name 时,它不会更新子组件的 displayName

如何在父组件中更改 myObject.name 时更新 displayName

https://stackblitz.com/edit/angular-mqiorv

最佳答案

displayNamegetter 会更容易。

@Input() inputObject;

ngOnInit() {

}

get displayName(){
   return this.inputObject.name;
}

...

<label>{{displayName}}</label>

关于Angular 订阅@Input 对象变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53667081/

相关文章:

javascript - Angular 5 默认值未默认选中

angular - 从 @azure/msal-angular@2.1.1 安装 msal-Angular 不工作对等 rxjs @"^6.0.0"

meteor - 我什么时候应该订阅 meteor 中的收藏?

javascript - Angular 4 @Input 属性更新不影响 UI

angular - 使用 ctx.putImageData 更改图像大小

typescript - 我如何对依赖于 RC3 路由器的组件进行单元测试?

angular - 一个订阅执行两个 HTTP 请求 - Angular 4

php - 可以从 REDIS 订阅返回响应吗?

javascript - Angular Subscribe 在值更改之前不起作用(需要首先初始化)

javascript - Knockoutjs super 基础知识