我有一个带有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未定义”。
我该怎么做才能让父类访问子类?
感谢。
答案 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;
...
}
我使用您提供的链接收到同样的错误。