Mic*_*ael 11 haml textarea newline ruby-on-rails carriage-return
当我使用\ r \n(回车 - 换行)填充文本textarea中的文本格式不正确[更新:\ r \n是填写一个textarea时产生什么,我只是从数据库中什么是拉以前填写.还要注意,在生产环境中我似乎没有这个问题.END UPDATE]例如:
%textarea
= "hello\r\nHow are you?"
Run Code Online (Sandbox Code Playgroud)
像这样出来:
hello
How are you?
Run Code Online (Sandbox Code Playgroud)
我想这可能与HAML有关.谁能帮我吗?注意:如果我使用\n\r \n它工作正常,但这在技术上是不正确的,并且id必须做一些gsubs来反转它们以便正确显示.
Nat*_*aum 15
因为Haml自动缩进HTML源代码,所以像pre和textarea这样的空格敏感标签的内容可能会搞砸.解决方案是用HTML新行实体替换这些标记内的换行符
,Haml使用Haml::Helpers#preserve和Haml::Helpers#find_and_preserve帮助程序实现.
通常情况下,当您使用需要它的标签时,Haml会自动为您执行此操作(可以使用该:preserve选项进行自定义).例如,
%p
%textarea= "Foo\nBar"
Run Code Online (Sandbox Code Playgroud)
将被编译为
<p>
<textarea>
Foo
Bar</textarea>
</p>
Run Code Online (Sandbox Code Playgroud)
但是,如果帮助者正在生成标记,则Haml无法检测到该标记,因此您必须Haml::Helpers#find_and_preserve自己调用.您也可以使用~,=除了它自动find_and_preserve在其输入上运行之外.例如:
%p= find_and_preserve "<textarea>Foo\nBar</textarea>"
Run Code Online (Sandbox Code Playgroud)
是相同的
%p~ "<textarea>Foo\nBar</textarea>"
Run Code Online (Sandbox Code Playgroud)
并呈现
<p><textarea>Foo
Bar</textarea></p>
Run Code Online (Sandbox Code Playgroud)
来源:这个Haml FAQ.
| 归档时间: |
|
| 查看次数: |
8209 次 |
| 最近记录: |