我正在javascript中构建验证模块,并希望根据input-element上的data-attribute调用某些验证函数。
所以调用函数是一个变量,我习惯称之为函数:window[var_name]()
但在模块化的环境中,这似乎不起作用;如果我在不同的模块中取代所述功能并导入它;有用;但最好是我想在验证模块中使用thos函数及其逻辑。
//--- ./validation.js
// importing common functions
import * as common from './common.js';
export function validateInput($el)
{
let type = $el.data('validation-type').split('|');
let val = $el.val();
// some whitelisting logic
// and traversing the type-array
var functionName = 'valid_'+type[i]; // eg valid_email
// This works if I place the `valid_email()` function in common.js
var result = common[functionName](val);
}
function valid_email(val)
{
// some validation logic
return true;
}
将函数替换为自己的common.js并将其作为常用函数导入/命名。因为它使用其(通用)命名空间。
但是我怎样才能在同一个模块中调用该函数?
答案 0 :(得分:0)
将函数附加到对象并像这样调用它:
TypeError: parse() got an unexpected keyword argument 'transport_encoding'