子页面调用父页面方法:通过方法,将父页面方法传递给子页面。直接上代码
父页面html: <p-dialog [header]="dialogTitle" [(visible)]="display" [draggable]="false"> <app-attribute-constraint-add (closeDialog)="closeDialog()"></app-attribute-constraint-add> </p-dialog>
父页面ts:直接写方法即可
closeDialog(){ this.display=false; this.query(1, this.pageSize); }
子页面页面ts:
@Output() closeDialog:EventEmitter<any> = new EventEmitter(); //准备用它来发射事件 接下来哪里需要调用方法 直接this.closeDialog.emit();
下面是父页面向子页面传值的问题:通过方法进行传值
父页面html:
<p-dialog [header]="dialogTitle" [(visible)]="display" [draggable]="false">
<app-attribute-constraint-add #attribute></app-attribute-constraint-add>
</p-dialog>
父页面ts:
@ViewChild('attribute') attribute:AttributeConstraintAddComponent;
需要传值的时直接赋值,这里的passValue()方法 ,为子页面方法: this.attribute.passValue({...param,flag: flag});
子页面接收
子页面ts:
passValue(data){ console.log(data);}
其中data就是父页面传给子页面的值。
这是近几天写页面是遇到的问题 。
一个页面向另一个页面传值:
传值页面html:
<app-product-part-attr [addPartConfig]="passChildValue"></app-product-part-attr>
传值页面ts:passChildValue: any;
接下来赋值就好,例:this.passChildValue = {...queryParams};
接收页面ts:这里的addPartConfig 就是传值页面[addPartConfig]中的。
@Input() addPartConfig;