0

我正在尝试通过 json 响应将节点添加到dynatree ,但问题更笼统(不是dynatree特定的):我无法了解如何正确渲染.js.erbjson.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像我期望的那样呈现(名称为 Title 的节点添加到<div id="places_tree"></div>)...

但我需要@places_json动态渲染

提前谢谢

4

1 回答 1

0

太容易得到它了

不得不进行深度调试,但我终于发现了“问题”

1)我已更改.as_json.to_jsonin 控制器方法

2) 我用简单.html_safe的 in转义了伪 json 字符串add_places.js.erb

3)最后,我发出了很长的“pffffff”声音,意识到它是多么简单

于 2013-11-10T02:57:32.473 回答