angular – 如何在自定义组件内转换输入数据?

前端之家收集整理的这篇文章主要介绍了angular – 如何在自定义组件内转换输入数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,我有组件:

@Component({
  selector: 'my-selector',inputs: ['data'],moduleId: module.id,template: '<p>{{transformedData}}</p>'
})
export class MyComponent {
  public transformedData: string;
  @Input() public data: string;

  // How to call this event on "data" change?
  public someEvent() {
    this.transformedData = this.data + '!';
  }
}

如何在数据更改时调用someEvent()?

解决方法

更改数据时onchanges会被触发.因此,在onChanges中你可以调用someEvent函数.

export class MyComponent {
  public transformedData: string;
  @Input() public data: string;

  ___________________________________________________________________________________________
  // EDIT: you can also do it. Not necessary but can be done this way too.
 //  Note: If you go with this approach,you don't need to use onchanges hook and don't require above @Input public data line.
    @Input() set data(data:string)
           console.log(data);
           this.someEvent();
   }
 ____________________________________________________________________________________________ 


  ngOnChanges(...args: any[]) {

        console.log(args);
        this.someEvent();
  }

  // How to call this event on "data" change?
  public someEvent() {
    this.transformedData = this.data + '!';
  }
}

猜你在找的Angularjs相关文章