Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在typescript中将字符串转换为对象_Javascript_Angular_Typescript_Angular6 - Fatal编程技术网

Javascript 如何在typescript中将字符串转换为对象

Javascript 如何在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

我正在用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 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)));
        });