在Angular 2+中 我有一个接受两个输入的组件
totalCarsNumber
availableCarsNumber
totalCarsNumber
是强制性的,但availableCarsNumber
不是
我正在寻找的是如何将availableCarsNumber
的默认值设置为totalCarsNumber
我尝试了这个,但它没有工作:
@Input() totalCarsNumber: Number;
@Input() availableCarsNumber = this.totalCarsNumber;
答案 0 :(得分:0)
在输入属性中使用属性设置器,我们可以检测并设置默认值
DATABSES = {
'default' :{
'ENGINE' : 'django.db.backends.mysql',
'NAME' :'MasterQuote',
'USER' : 'root',
'PASSWORD' : 'root',
'HOST' : 'localhost',
'PORT' : ''
}
}
我做了一个小演示,你可以查看它stackblitz
答案 1 :(得分:-1)
; TDLR通过Angular的@Input传递的值在组件初始化后变为可用,因此,ngOnInit
中的totalCarsNumber值可用。因此,您必须使用ngOnInit
来实现它。
可选输入需要使用问题后缀进行注释。 number
类型应该是小写的。此外,我们将null设置为可选输入的默认值,以便稍后检查它是否已设置。
@Input() totalCarsNumber: number;
@Input() availableCarsNumber?: number = null;
然后我们可以使用ngOnInit
来检查是否已在组件上提供this.availableCarsNumber
的值,否则它将为null,然后我们将值设置为totalCarsNumber
。
ngOnInit() {
this.availableCarsNumber = this.availableCarsNumber === null ? this.totalCarsNumber : this.availableCarsNumber;
}