加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

typescript – 如何知道ngOnChanges中哪些@Input更改?

发布时间:2020-12-17 07:33:01 所属栏目:安全 来源:网络整理
导读:我正在使用Angular 2. 现在我有两个@input aa和bb.我想要做: 如果aa发生变化,请做点什么. 如果bb发生变化,请做其他事情. 如何知道ngOnChanges中哪些@Input更改?谢谢 @Input() aa; @Input() bb; ngOnChanges(changes: { [propName: string]: SimpleChange }
我正在使用Angular 2.

现在我有两个@input aa和bb.我想要做:

>如果aa发生变化,请做点什么.
>如果bb发生变化,请做其他事情.

如何知道ngOnChanges中哪些@Input更改?谢谢

@Input() aa;
  @Input() bb;

  ngOnChanges(changes: { [propName: string]: SimpleChange }) {
    // if aa changes,do something
    // if bb changes,do other thing
  }
可能会这样做
ngOnChanges(changes: { [propName: string]: SimpleChange }) {
  if( changes['aa'] && changes['aa'].previousValue != changes['aa'].currentValue ) {
    // aa prop changed
  }
  if( changes['bb'] && changes['bb'].previousValue != changes['bb'].currentValue ) {
    // bb prop changed
  }
}

不过,我对未定义的属性进行定义感到惊讶.从食谱中,我预计只会定义更改的属性.

https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#parent-to-child-on-changes

如果这太冗长,您也可以尝试使用setter方法:

_aa: string;
_bb: string;

@Input() set aa(value: string) {
  this._aa = value;
  // do something on 'aa' change
}

@Input() set bb(value: string) {
  this._bb = value;
  // do something on 'bb' change
}

https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#parent-to-child-setter

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读