有没有一种方法可以在发射事件上触发函数,而不仅仅是onChange?

时间:2019-11-29 12:43:51

标签: angular parent-child onchange eventemitter event-binding

当我按下父元素中的箭头时,我总是发出true。当发射器从undefined变为true时,子级仅在开始时接收更改。是否有一种方法可以在父对象发出某些东西时始终调用该函数,即使它的值与经时相同?

父HTML:

<div (click)="emit()">
<child [changed_slide]= "changed_slide"></child>

父母.ts:

emit(){this.changed_slide.emit(true);}

孩子:

ngOnChanges(changes: { [property: string]: SimpleChange }){
    let change: SimpleChange = changes['changed_slide'];
    console.log(change);
    }

因此,我希望每次单击父div时都会发出“ true”(或其他所有消息,我只想发出某些内容以便在孩子中做某事),然后自动触发一个函数这个孩子。每当我单击父母时,孩子都会做某事。 我将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

就像您要将数据从“父级”发送到“子级”元素一样,可以使用“子级@Input”中的集合:

T[list(d.keys())] = list(d.values())

然后在您的父母中,您可以这样做:

**Child**
    private _changed_slide: boolean;
    @Input() public set changed_slide(value: boolean) {
       this._changed_slide = value;
    }

HTML:

export class ParentComponent {
    private eventSource: Subject<boolean>;
    public event$: Observable<boolean>;
    constructor() {
     this.eventSource = new Subject();
     this.event$ = this.eventSource.asObservable();
    }

    emit() {
      this.eventSource.next(true);
    }
}