![](/img/trans.png)
[英]rails 3 - escaping partial's generated html in javascript response
[英]Rendering a partial and escaping the html/javascript for a bookmarklet
我正在嘗試構建一個書簽,它向本地主機中的操作發出請求,並顯示一個帶有從本地主機的 js 響應中獲取的 html 的 div。 我可以很好地提出請求,但是當 js 返回時,我在控制台中有“未定義”。 我嘗試使用 binding.pry 調試它,我發現內容沒有正確評估。 這是我嘗試評估它的方式:
content = "<%= escape_javascript(render(:partial => 'events/bookmarklet').html_safe) %>";
在 binding.pry 控制台中,我得到以下響應:
content = eval("<%= escape_javascript render(:partial => 'events/bookmarklet') %>");
SyntaxError: (eval):1: syntax error, unexpected '<'
<%= escape_javascript render(:partial => 'events/bookmarklet') %>
^
(eval):1: syntax error, unexpected ')', expecting end-of-input
<%= escape_javascript render(:partial => 'events/bookmarklet') %>
^
from (pry):12:in `eval'
如果我理解您想要正確執行的操作,我不知道您為什么要嘗試eval
某些內容。
如果您想通過 javascript 傳遞 html,請使用json
和render_to_string
。 所以對於你的例子:
# controller
def action_name
content =
render_to_string(
partial: 'events/bookmarklet',
formats: [:html], # always render html format, even if request wants json
layout: false # render only partial, without any layout
)
render json: { html: content }
end
然后您可以通過data.html
訪問 javascript 中的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.