我正在尝试通过json响应向dynatree添加一个节点,但问题更为笼统(不是特定于dynatree):我无法了解如何使用.js.erb
正确呈现json进入.html.erb
视图
#ERB view
...
<div id="places_tree"></div>
...
# controller
def add_places
@places_json=Place.all.as_json
respond_to do |format|
format.js { render layout: false } # execute add_places.js.erb
end
end
#add_places.js.erb
var node = $("#places_tree").dynatree("getRoot");
node.addChild(<%= @places_json %>); <=== node not renders into dynatree container `<div id="places_tree"></div>` here
如果我在上面的最后一行将其更改为纯json
node.addChild({"title": 'Title'})
节点Title
像我期望的那样渲染(名称标题的节点添加到<div id="places_tree"></div>
)...
但我需要动态渲染@places_json
thanx
答案 0 :(得分:0)
很容易快速得到它
必须进行深度调试,但我终于发现了“问题”
1)我已在控制器方法
中将.as_json
更改为.to_json
2)我在.html_safe
add_places.js.erb
转义了伪json字符串
3)最后,我做了很长的'pffffff'声音,意识到它有多么简单