在jbuilder文件中,我要做的是:
json.directives do
json.edit_provider_path "{href: function(){return '#{edit_provider_path(resource)}';}}"
end我在客户中收到的资料如下:
{edit_provider_path: "{href: function(){return '/providers/201/edit';}}"}是否可以向客户端发送一个function()?请注意,目前它是一个字符串。
发布于 2014-08-12 01:38:59
我所做的就是向客户端发送字符串:
{a_key: "{\"href\": \"function(){return '#{edit_provider_path(resource)}';}\"}" }然后,在coffeescript中:
for key, val of res
# key is a_key, and so on
res[key] = JSON.parse(value)
# res[key] is now {"href": "function(){...}"}
for _key, _value of res[key]
res[key][_key] = eval _value
# res[key] is now {"href": function(){...}}啊,我忘了,eval("function(){}")不工作,所以我不得不包装函数:
eval("(function(){...})")即:
{a_key: "{\"href\": \"(function(){return '#{edit_provider_path(resource)}';})\"}" }发布于 2014-08-12 00:05:01
JSON不允许函数,所以我不希望jBuilder支持它。如果您需要将完整的JavaScript返回给客户端,那么js.erb模板可能是您的最佳选择。
https://stackoverflow.com/questions/25253696
复制相似问题