2016-11-20 71 views
-1

因此,可以说我有一个像返回一个字符串的服务器:

{ 
    add:function(a,b) { 
     return a+b; 
    }, 
    subtract:function(a,b) { 
     return a-b; 
    } 
} 

是有可能$解析成一个功能?

我tryed与解析它:

$parse(element.Content) // Content is the string above 

,但得到

Token '{' is an unexpected token 

我想是这样的:

elementFunctions = $parse(element.Content) 
+0

,为什么你会永远商店代码,您打算在变量来执行呢?这是一个非常危险的做法,并不是特别实用。 – Claies

回答

0

$parse不会做你认为它!

简单地说,它只是解决性质,他们的名字,对一些方面(角范围) - 基本。
不仅如此,它还提供了一种与这些属性进行交互的方式,但您可以通过快速浏览its documentation来获得它的要点。


它不评估String S作为JavaScript代码。

你很可能期待eval你的string
虽然在很多情况下,很多情况下有更好,更快,更可控,更合理的解决方案!

const code = '' 
 
+ 'const functions = {' 
 
+  'add: function(a,b) {' 
 
+   'return a+b;' 
 
+  '},' 
 
+  'subtract: function(a,b) {' 
 
+   'return a-b;' 
 
+  '}' 
 
+ '};' 
 
+ 'functions'; 
 

 
console.log(eval(code).add(50, 1));