2016-11-20 3 views
-1

Так позволяет сказать, что у меня есть сервер, который возвращает строку, как:

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

является возможным $ разобрать, что в функцию?

я судимое разобрать его:

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

но получить

Token '{' is an unexpected token 

Я хотел бы что-то вроде:

elementFunctions = $parse(element.Content) 
+0

почему бы вы когда-нибудь магазин код, который вы планируете выполнить в переменных? Это чрезвычайно опасная практика и не особенно практична. – Claies

ответ

0

$parse не делать то, что вы думаете, что делает!

Проще говоря, это просто решает свойства, их именем, от некоторого контекста (угловые областей) - в основном.
Ну, это более того, он обеспечивает способ взаимодействия с этими свойствами, но вы получите суть этого, быстро взглянув на its documentation.


Это не оценитьString сек, как яваскрипт код.

Возможно, вы, скорее всего, смотрите на eval uate 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));

Смежные вопросы