将JSON字符串转换为Angular函数?

Samsquanch

我有一个角度服务来获取一些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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章