Besoin d’accès à l’élément enfants de la propriété . Parent:
<div>
<shipment-detail #myCarousel ></shipment-detail>
</div>
@Component({
selector: "testProject",
templateUrl: "app/partials/Main.html",
directives: [ShipmentDetail] })
class AppComponent {
getChildrenProperty() {
// I want to get access to "shipment"
}
}
Enfants:
@Component({
selector: "shipment-detail",
})
export class ShipmentDetail {
shipment: Shipment;
}
Voir le livre de recettes d'interaction entre composants . Donc, utilisez @ViewChild () et ajoutez à ShipmentDetail une méthode que le parent peut appeler pour récupérer la valeur de l'envoi, ou accédez directement à la propriété, comme je le montre ci-dessous (parce que j'étais paresseux et que je ne voulais pas écrire d'API/méthode):
@Component({
selector: "testProject",
templateUrl: "app/partials/Main.html",
directives: [ShipmentDetail]
})
export class AppComponent {
@ViewChild(ShipmentDetail) shipmentDetail:ShipmentDetail;
ngAfterViewInit() {
this.getChildProperty();
}
getChildProperty() {
console.log(this.shipmentDetail.shipment);
}
}
Dans la nouvelle version de Angular, nous pouvons accéder aux méthodes ou propriétés enfants en important un composant enfant dans un composant parent:
Composant enfant - shippingdetail.component.ts:
@Component({
selector: "shipment-detail",
})
export class ShipmentDetailComponent implements OnInit {
shipment: Shipment;
}
app.component.ts:
import { ShipmentDetailComponent} from './shipmentdetail.component';
@Component({
selector: "testProject",
templateUrl: "app/partials/Main.html"
})
export class AppComponent {
@ViewChild(ShipmentDetailComponent) shipmentDetail:ShipmentDetailComponent;
ngAfterViewInit() {
this.getChildProperty();
}
getChildProperty() {
console.log(this.shipmentDetail.shipment);
}
}
Vérifier la documentation: https://angular.io/guide/component-interaction#parent-calls-an-viewchild