使用带有Angular.js应用程序的Haml进行符号转换

时间:2014-09-08 18:46:42

标签: angularjs haml html-encode html-escape-characters

我有一个Angular.js应用程序,我想开始使用Haml。我的问题是我的一些代码无法正常转换。

我需要输出以下内容:

<form name='userForm' class='admin-form form-horizontal' ng-submit='userForm.$valid && saveUser()' novalidate></form>

所以在Haml,我写道:

%form{:class => 'admin-form form-horizontal', :name => 'userForm', :'ng-submit'=>'userForm.$valid && saveUser()'}

但问题是&&转换为&amp;&amp;所以:

<form name='userForm' class='admin-form form-horizontal' ng-submit='userForm.$valid &amp;&amp; saveUser()' novalidate></form>

我该怎么做才能防止这种情况发生?此外,是否可以将标签的每个属性放在一个单独的行中?当我尝试这样做时,我也会遇到错误。

2 个答案:

答案 0 :(得分:1)

您需要将escape_attrs option设置为false。如何执行此操作取决于您使用Haml的方式see the docs

e.g。从命令行:

$haml --no-escape-attrs
%form{:class => 'admin-form form-horizontal', :name => 'userForm', :'ng-submit'=>'userForm.$valid && saveUser()'}

产生

<form class='admin-form form-horizontal' name='userForm' ng-submit='userForm.$valid && saveUser()'></form>

答案 1 :(得分:1)

好吧,我通过在Gruntfile haml选项中将no-escape-attrs设置为true来实现它:

haml:
      options:
        'no-escape-attrs': true