【问题标题】:HAML Extra Spaces in Textarea文本区域中的 HAML 额外空格
【发布时间】:2017-08-10 19:31:10
【问题描述】:

我遇到了一个我似乎无法破译的问题。

我正在尝试将文本放入 Rails 应用程序中的文本区域。我有一个包含文本的变量,它是一个多行字符串,由读取文件的内容制成。这是文件读取结束时的string。但是,字符串最终会被放入文本区域,看起来是 like this

我的猜测是,这是由于 textarea 如何解析换行符。将它们全部替换为 <br><br /> 会将标签呈现为纯文本。听起来有一个简单的解决方案,但我不确定如何解决。

编辑:根据请求,这里是带有 textarea 的代码。它是用 HAML 编写的,因此对此深表歉意,我找不到有效的 HAML 到 HTML 转换器(或者我可能不擅长谷歌搜索)。

%textarea{:name => "user_css", :width => "90%", :rows => "30", :style => "font-family:Courier; font-size:12; white-space:pre-wrap"}
        = css_contents

【问题讨论】:

  • 你能把 HTML 代码粘贴到这里,你已经在 textarea 中声明和赋值了吗?
  • 添加了代码sn-p
  • 你试过在同一行写%textarea{...}=css_contents吗?
  • 我试过了,但是它把 =css_contents 放到 textarea 中而不是 css_contents 的值
  • 您是否也尝试过在 HAML 中使用 :preserve 过滤器?例如:%textarea :preserve = css_contents,所有这些 %textarea:preservecss_contents 在不同的行中,缩进 1 个制表符

标签: html ruby-on-rails haml


【解决方案1】:

您可以尝试一些事情
1.使用HAML的:preservefind_and_preserve助手

%textarea{:name => "user_css", :width => "90%", :rows => "30", :style => "font-family:Courier; font-size:12; white-space:pre-wrap"}
   :preserve 
       = css_contents

2。使用HAML's tilde (~)

%textarea{:name => "user_css", :width => "90%", :rows => "30", :style => "font-family:Courier; font-size:12; white-space:pre-wrap"}
   ~ css_contents    

3。写在同一行

%textarea{..}= "#{css_contents}"

【讨论】:

    最近更新 更多