提问人:Fabio Ferrari 提问时间:10/16/2023 更新时间:10/16/2023 访问量:51
有没有办法在angular中有条件地设置所需的输入?
Is there any way to set the Input required conditionally in angular?
问:
我试图实现的是仅在给定另一个输入时才需要组件/指令输入,例如:
@Input() name!:string;
@Input({ required: name!!}) surname!:string;
这可能吗?
我尝试设置,但它没有按预期工作,我唯一可能有权访问的字段是静态字段required: name!!
答:
0赞
Matthieu Riegler
10/16/2023
#1
这是不可能的,您可以在装饰器中参考。this
另请记住,输入是编译器独有的功能。此信息不会进入运行时捆绑包。required
0赞
Fabio
10/16/2023
#2
这种方式是不可能实现的,但是如果我很好地理解了您的目的,为了实现您的目标,您可以使用 getter 和 setter 来检查何时在您的 angular 子组件中重视所需的输入数据。 例如:
private _name: string;
public get name(): string {
return this._name;
}
@Input() public set name(value: string) {
if (value) {
// you can assign the value that come in input
this._name = value;
}
else {
// example: show a toast message error if !value
}
}
评论