3

我正在开发 angular2 应用程序,其中我的父组件会弹出一个子组件

@ViewChild(childPopupComponent) case: childPopupComponent;

我想要做的是:从子组件(在父组件内弹出)按下保存按钮时,重新渲染父组件以进行反射(而不是重新加载整个页面)。

我知道这会重新渲染当前组件,但是如何从 @ViewChild一个

this.ref.detectChanges();
4

1 回答 1

2

注入ChangeDetectorRef您的子组件,例如:

export class childPopupComponent {
    constructor(public cdRef: ChangeDetectorRef) {}

之后,您将能够仅在子组件上运行更改检测循环:

@ViewChild(childPopupComponent) case: childPopupComponent;

this.case.cdRef.detectChanges();

为了更新父母,您可以将其注入孩子

export class childPopupComponent {
    constructor(public parent: ParentComponent) {}

接着

this.parent.cdRef.detectChanges()

甚至试试这个:

import { ChangeDetectorRef, SkipSelf } from '@angular/core';

export class childPopupComponent {
    constructor(@SkipSelf() private parentCdRef: ChangeDetectorRef) {}
于 2017-09-25T09:34:17.417 回答