【问题标题】:Rails JS.HAML rendering raw htmlRails JS.HAML 渲染原始 html
【发布时间】:2016-11-30 12:22:56
【问题描述】:

我在我的项目中使用了haml。通过将以下代码行添加到 example.js.haml 将返回 <h1>hello</h1> 而不是 hello

:plain
  document.getElementById('light').append("#{escape_javascript(raw '<h1>hello</h1>')}"); 

需要关于如何修改 example.js.haml 以便只返回没有 html 标签的 hello 的建议

【问题讨论】:

  • 试试,document.getElementById('light').append("#{escape_javascript('&lt;h1&gt;hello&lt;/h1&gt;').html_safe}");
  • 不,它不起作用:(
  • 不是{escape_javascript‌​('&lt;h1&gt;hello&lt;/h1&gt;').h‌​tml_safe},如果有的话,那么{escape_javascript‌​('&lt;h1&gt;hello&lt;/h1&gt;'.h‌​tml_safe)}。但我不确定这是否也有效
  • 或者你的意思是真的打印

    ...?

  • 我都试过了。它返回带有标题标签的 hello

标签: javascript ruby-on-rails haml


【解决方案1】:

这对我有用:

:plain
  $('#light').append("#{escape_javascript('<h1>hello</h1>'.html_safe)}"); 

所以问题似乎出在代码的其他地方。

请出示你的控制器

【讨论】:

  • def 例子 respond_to do |format| format.js 结束结束
  • respond_to(:js) 在您的情况下就足够了。但不是你的错误的原因
  • 我不明白为什么 - 我也有原型,但我认为这不会导致问题,因为我正在获取带有标签的 HTML
  • 作为最后一个想法(如果您还没有尝试过)。尝试渲染一个parial(使用&lt;h1&gt;test&lt;/h1&gt;
  • 我尝试先使用部分,但当它不起作用时,我切换到这个简单的示例
【解决方案2】:

这是由于 Jquery 冲突造成的。

添加了 jquery.noconflict.js

(function() { window.$jq = jQuery.noConflict(); })();

并更改了 example.js.haml

:plain
  $jq('#light').append("#{escape_javascript('<h1>hello</h1>'.html_safe)}"); 

【讨论】:

    【解决方案3】:

    您是否尝试过删除“原始”关键字? :)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    相关资源
    最近更新 更多