首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送函数Rails jBuilder

发送函数Rails jBuilder
EN

Stack Overflow用户
提问于 2014-08-11 22:55:20
回答 2查看 369关注 0票数 1

在jbuilder文件中,我要做的是:

代码语言:javascript
复制
json.directives do
  json.edit_provider_path "{href: function(){return '#{edit_provider_path(resource)}';}}"
end

我在客户中收到的资料如下:

代码语言:javascript
复制
{edit_provider_path: "{href: function(){return '/providers/201/edit';}}"}

是否可以向客户端发送一个function()?请注意,目前它是一个字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-12 01:38:59

我所做的就是向客户端发送字符串:

代码语言:javascript
复制
{a_key: "{\"href\": \"function(){return '#{edit_provider_path(resource)}';}\"}" }

然后,在coffeescript中:

代码语言:javascript
复制
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(){}")不工作,所以我不得不包装函数:

代码语言:javascript
复制
eval("(function(){...})")

即:

代码语言:javascript
复制
{a_key: "{\"href\": \"(function(){return '#{edit_provider_path(resource)}';})\"}" }
票数 0
EN

Stack Overflow用户

发布于 2014-08-12 00:05:01

JSON不允许函数,所以我不希望jBuilder支持它。如果您需要将完整的JavaScript返回给客户端,那么js.erb模板可能是您的最佳选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25253696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档