2014-11-20 131 views
1

我想将某些data传递给嵌入在我的视图中的javascript函数my_function(data)如何将原始数据从控制器传递到JavaScript?

在控制器我这样做:

data = "[{value: 1, color: '#FF0000'},{value: 1, color: '#FF0000'} ]" 

这就是数据必须进入该功能的方式。我来到一个很长的路要走使用此:

my_function({{ =XML(response.json(data)) }} 

它的工作原理了这一点,但是数据最终是这样的:

"[{value: 1, color: '#FF0000'},{value: 1, color: '#FF0000'} ]" 

,但我用膝盖像这样 - 不带引号周围[...]

[{value: 1, color: '#FF0000'},{value: 1, color: '#FF0000'} ] 

我该如何做到这一点?

+0

毕竟我不得不说,整个想法是错误的。解决方案是定义一个小的帮助函数'build_js(data)'来返回一个HTML脚本标记。所需的数据被传递给函数。无论如何感谢@安东尼! – Rockbot 2014-11-21 10:24:14

回答

1

data已经是JSON,所以没有必要response.json - 只是做:

my_function({{=XML(data)}}) 

或者,您也可以使data Python对象,并使用response.json将其转换为JSON:

data = [{'value': 1, 'color': '#FF0000'}, {'value': 1, 'color': '#FF0000'}] 
+0

谢谢!这有帮助。但为了它的工作,我也必须这样做:“my_function(my_data = {{= XML(data)}})” – Rockbot 2014-11-21 09:42:00

+0

嗯,JavaScript通常不需要参数名称。函数定义是什么样的? – Anthony 2014-11-21 13:28:31

+0

在这个问题下面看到我的评论,最后整个想法都是错误的。对于JS:我试图实现'chart.js'(chartjs.org) – Rockbot 2014-11-21 16:57:33

相关问题