@input对于在组件之间绑定数据很有用
首先,将其导入您的组件中
import { Input } from '@angular/core';
然后,将输入添加为组件类的属性
@Input() car: any;
假设您组件的选择器是“ car-component”,当您调用该组件时,添加属性“ car”
<car-component [car]="car"></car-component>
现在您的汽车可以作为对象中的属性(this.car)进行访问
完整示例:
实体
export class CarEntity { constructor(public brand : string, public color : string) { } }
car.component.ts
import { Component, Input } from '@angular/core'; import {CarEntity} from "./car.entity"; @Component({ selector: 'car-component', template: require('./templates/car.html'), }) export class CarComponent { @Input() car: CarEntity; constructor() { console.log('gros'); } }
garage.component.ts
import { Component } from '@angular/core'; import {CarEntity} from "./car.entity"; import {CarComponent} from "./car.component"; @Component({ selector: 'garage', template: require('./templates/garage.html'), directives: [CarComponent] }) export class GarageComponent { public cars : Array<CarEntity>; constructor() { var carOne : CarEntity = new CarEntity('renault', 'blue'); var carTwo : CarEntity = new CarEntity('fiat', 'green'); var carThree : CarEntity = new CarEntity('citroen', 'yellow'); this.cars= [carOne, carTwo, carThree]; } }
garage.html
<div *ngFor="let car of cars"> <car-component [car]="car"></car-component> </div>
car.html
<div> <span>{{car.brand}}</span> | <span>{{car.color}}</span> </div>