2016-11-20 84 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));