Escape 2 Curly Braces / Angular JS牙套

时间:2013-10-13 05:46:55

标签: ruby-on-rails ruby string angularjs ruby-on-rails-4

我正在尝试在我的视图中打印一个字符串,这些字符串有这样的花括号:{{ }},但它没有通过。有没有办法可以逃避/跳过Rails中的花括号解析?我正在尝试打印的字符串是这样的:

@my_string = 'Hello {{name}}'

在我看来,我正在打印这样的字符串:

<%= f.text_area raw(@my_string) %>  # Prints - "Hello"

我在没有raw的情况下尝试过。它也不起作用。我尝试用{}替换字符&#123;&#125;,我也尝试用\{\}替换它们。字符串是这样的:

"Hello \{\{name\}\}"

我希望字符串为:

Hello {{name}}

有什么想法吗?

编辑:这是Stefan回答后的编辑。我没有必要逃避Rails中的角色。这个问题是由Angular JS引起的。我正在使用Angular JS,我必须提供ng-non-bindable类,以便不替换{{ }}

3 个答案:

答案 0 :(得分:3)

大括号在浏览器中被像AngularJS这样的JavaScript框架替换。你必须告诉框架不要替换它们。

在AngularJS中,您将使用ng-non-bindable指令:

<%= f.text_area @my_string, class: "ng-non-bindable" %>

答案 1 :(得分:0)

尝试这样的东西

<%= f.text_area "#{@my_string}" %> 

看看它是否有效

答案 2 :(得分:-2)

这将绕过角度

  {{  "{{ text }\}"   }}    # Prints - "{{ text }}"