Javascript 如何在typescript中将字符串转换为对象
我正在用Angular 6制作动态表格。为此,我从后端发送JSON。PFB jsonJavascript 如何在typescript中将字符串转换为对象,javascript,angular,typescript,angular6,Javascript,Angular,Typescript,Angular6,我正在用Angular 6制作动态表格。为此,我从后端发送JSON。PFB json 我正在用打字稿制作以下表格。PFB代码 this.dataList = JSON.parse(event.body); //Contains the JSON sent from backend const formContent: any = {}; this.dataList.forEach(data => { formContent[data.key] = new FormCon
我正在用打字稿制作以下表格。PFB代码
this.dataList = JSON.parse(event.body); //Contains the JSON sent from backend
const formContent: any = {};
this.dataList.forEach(data => {
formContent[data.key] = new FormControl(data.value ,data.syncValidators));
});
this.exampleForm = new FormGroup(formContent);
我在=>data.syncValidators中遇到了问题,因为它被视为字符串。但它需要验证器
如何进行转换以使“data.syncValidators”被视为一种方法而不是字符串?创建一个工厂以实现:
validatorFactory(validatorName:string){
switch(validatorName){
case "Validators.required" :
return Validators.required;
// add other validators like max , min , ....
default : return null;
}
}
然后像这样使用它:
this.dataList.forEach(data => {
formContent[data.key] = new FormControl(data.value ,validatorFactory(data.syncValidators)));
});
你可以用三元
this.dataList.forEach(data => {
formContent[data.key] = (data.syncValidators == "Validators.required" ?
new FormControl(data.value ,Validators.required)) : new FormControl(data.value)));
});
这就是答案@Harshit。但是可以有一组验证程序,比如新的FormControl(data.value、Validators.required、Validators.email);
this.dataList.forEach(data => {
formContent[data.key] = (data.syncValidators == "Validators.required" ?
new FormControl(data.value ,Validators.required)) : new FormControl(data.value)));
});