有没有一种方法可以在单个@Input()集中设置多个属性?

时间:2019-08-09 11:29:22

标签: angular typescript

因此,我正在研究一个组件,该组件设置两个不同的属性以执行查询,如下所示:

tsc --listFiles

我一直试图在相同的 @Input() set stringValue(_stringValue: any) { this._stringValue = _stringValue; this.launchMyQuery() } @Input() set idValue(_idValue: any) { this._idValue = _idValue; // This value is optional so I chose not to launch the query here } 方法中设置两个属性(字符串值和idValue),以便我可以在设置两个参数之后启动查询,从而避免仅使用其中一种方法来限制查询的条件。有没有办法做到这一点?像

Input() set

1 个答案:

答案 0 :(得分:4)

通过创建一个接受arrayobject作为参数的属性来尝试这种方式

作为数组的参数

@Input() set data(values) { 
 const [stringValue, idValue] = values; 
 this.stringValue = stringValue;
 this.idValue  = idValue;
 this.launchMyQuery();
}

或这种方式

@Input() set data([stringValue, idValue]) { 
 this.stringValue = stringValue;
 this.idValue  = idValue;
 this.launchMyQuery()
}

作为对象的参数

@Input() set data({stringValue, idValue}) { 
 this.stringValue = stringValue;
 this.idValue  = idValue;
 this.launchMyQuery()
}

检查此?A Dead Simple intro to Destructuring JavaScript Objects