如何让父类访问角度2中的子类?

时间:2017-11-14 20:32:25

标签: angular

我有一个带有Typescript的Angular 2应用程序。我想知道如何从父类访问子类。

父类是这样的:

@Component({
    selector: 'all-data-page',
    templateUrl: './all-data-page.component.html',
    styles: [require('./all-data-page.style.scss')]
})
export class AllDataPageComponent implements OnInit {
...
}

它的选择器如下所示:

<all-data-page [allData]="results.top3.Rows" type="Safeguards" *ngIf="!!results.AllDataSafeguards">
</all-data-page>

孩子看起来像这样:

@Component({
  selector: 'all-data-row',
  templateUrl: './all-data-row.component.html',
  styles: [ require('./all-data-row.style.scss') ],
  encapsulation: ViewEncapsulation.None
})
export class AllDataRowComponent implements OnInit {
...
}

它的选择器如下所示:

 <div class="data-list">
        <all-data-row *ngFor="let item of categoryRows; let last=last"
                      relativeWidth="100"
                      [item]="item.chartData"
                      [last]="last"
                      [ChartLabel]="item.chartData.ChartLabel"
                      [acmCat1]="item.chartData.acmCat1"
                      [acmCat2]="item.chartData.acmCat2"
                      [acmCat3]="item.chartData.acmCat3"
                      [acmCat4]="item.chartData.acmCat4"
                      [acmCat5]="item.chartData.acmCat5"
                      (click)="selectCategory(item.fullObject)"
                      [selected]="selected">
        </all-data-row>
    </div>

我想知道如何从父类引用子类。

谷歌上出现的各种网站建议使用@ViewChildren,但这对我不起作用。 Chrome控制台告诉我“ViewChildren未定义”。

我该怎么做才能让父类访问子类?

感谢。

1 个答案:

答案 0 :(得分:0)

我没有使用@ViewChildren。当我DID使用@ViewChildren(并得到错误)时,我这样做了:

@Component({
    selector: 'all-data-page',
    templateUrl: './all-data-page.component.html',
    styles: [require('./all-data-page.style.scss')]
})
export class AllDataPageComponent implements OnInit {
@ViewChildren(AllDataRowComponent) AllDataRowComponent : safeguardRow;
...
}

我使用您提供的链接收到同样的错误。