使用带有eval

时间:2016-06-30 14:18:34

标签: javascript express ecmascript-6 eval ecmascript-7

我称之为函数:

import {required, maxLength} from 'utils/validation';
import sitesForm from './sites.json';
import productForm from './product.json';

var validateSite = {};
for(var group in sitesForm ) {
    var groupObj = sitesForm[group];
    for(var el in groupObj ) {
        console.log(eval('required'))
        validateSite[groupObj[el].name] = groupObj[el].rules.map(eval)
    }
}

//utils/validation.js
export function required(value) {
  if (isEmpty(value)) {
    return 'Champs requis';
  }
}

我收到一条错误,说必须没有定义,在我的json中我得到了这个规则的数组: “规则”:[ “需要”]

然而,代码中的console.log(必需)显示:[功能:必需]

你知道为什么我不能在需要时使用eval吗?

1 个答案:

答案 0 :(得分:1)

如果您只想调用命名函数,则应使用索引符号:

import validators from 'utils/validation';

validateSite[groupObj[el].name] = groupObj[el].rules.map(s => validators[s])