如何将类成员变量传递给另一个Angular 组件?

oyjwcjzk  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(291)

car.ts在“export class car{}”中有“isnewcar”变量,我需要将“isnewcar”变量导出到另一个组件carsale.ts,它位于不同的目录中,而不在同一个模块中。我是否必须将car.ts模板添加到carsale.ts文件并添加“isnewcar”作为输入?
编辑:car.ts具有导出类car{isnewcar:boolean=false;}而car.ts是一个组件。carsale.ts也是一个组件,但它与car.ts不在同一个/共享模块中。我需要carsale.ts,最终需要carsale.ng.html来访问isnewcar变量。那么,您能告诉我如何使用viewchild decorator或carsale.ts中的任何其他工具来访问该变量吗?理想情况下,我不想制作一个共享模块,但如果必须,我可以。

jk9hmnmh

jk9hmnmh1#

您可以扩展 Car 阶级性,

export class CarSale extends Car {

    ngOnInit(){
      this.isNewCar = true;
    }
 }

通过扩展 Car 类,您将能够访问 isNewCar 来自 CarSale

tf7tbtn2

tf7tbtn22#

需要更多关于用例的信息。这辆车是部件还是模型?如果car.ts是一款车型,则应将其汇总到carsale.ts组件中,或者,如果确实需要,将其与服务一起提供给全球用户。如果car.ts是具有自己模板的组件,则可以使用输出事件发射器或使用viewchild装饰器访问该值。共享变量还有其他方法,但以上方法更常见。
car.ts:

/*

* This is a POJO
* /

export class Car{
    isNew: boolean;
}

car-sale.component.ts:

export class CarSale {

    car: Car; // Car is aggregate into CarSale

    ngOnInit(){
        car = new Car();
        car.isNew = true;
    }

}

car-sale.component.html

<-- just use your car object like this --!>
<div *ngIf="car">Is the car new ? {{ car.isNew }}</div>

相关问题