2014-01-14 6 views
2

Rails 4 애플리케이션에서 자바 스크립트 함수를 실행해야합니다.ExecJS로 인수 전달

my_js_function = 'function my_function(a){var b=a.split("$");var c="";for(i=0;i<=b.length-1;i++){if(!(i%2)){c+=b[i]}}var b=c.split("");c="";for(i=0;i<=b.length-1;i++){if(i%2){c+=b[i]}}return c}' 
compiled_function = ExecJS.compile(my_js_function) 
result = compiled_function.call(my_argument) 

원래 JS 함수는 어떻게 든 그에게 전달해야하는 인자 (my_argument)를 취 I은 모든 성공하지 ExecJS (https://github.com/sstephenson/execjs)으로 다음 시도. 이것이 가능한 방법에 대한 도움을 많이 주시면 감사하겠습니다!

답변

3

가까운 사이. 을 사용하면 안되므로 eval을 사용해야합니다.

my_js_function = 'function my_function(a){var b=a.split("$");var c="";for(i=0;i<=b.length-1;i++){if(!(i%2)){c+=b[i]}}var b=c.split("");c="";for(i=0;i<=b.length-1;i++){if(i%2){c+=b[i]}}return c}' 
compiled_function = ExecJS.compile(my_js_function) 
compiled_function.eval('my_function("heyhey")') 
#=> ehy