我有一个角度服务来获取一些JSON数据,在此数据中,我有一个字符串功能(在服务器端构建并将其传递给angular),例如:
{
"fn": "function( data ) { data.rendered = data.value; }"
}
是否可以解析它并将其用作带有angular的表达式?即
settings.myCustomFunction = serviceData.fn;
我试图用不同的组合要做到这一点eval
,$eval
,$parse
,但我还没有与任何人任何运气。他们要么抛出有关“意外*”的错误,要么不抛出错误,但似乎也无济于事。
您可以将字符串包装在括号中以避免语法错误。
eval("(" + fnString + ")")
这使它成为语法上有效的JavaScript语句,该语句由可以自由传递的单个函数表达式组成。
匿名函数本身没有任何括号或LHS运算符(例如常用的赋值运算符=
)对其起作用,因此它在语法上不是有效的JavaScript语句。这就是为什么您会在JS括号中看到IIFE(立即调用的函数表达式)的原因:
(function() {
// ...
})()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句