Ruby on rails 在haml下划线模板中插入javascript时出现奇怪错误
在haml下划线模板中确保javascript时出现奇怪错误 这非常有效:Ruby on rails 在haml下划线模板中插入javascript时出现奇怪错误,ruby-on-rails,backbone.js,haml,underscore.js,Ruby On Rails,Backbone.js,Haml,Underscore.js,在haml下划线模板中确保javascript时出现奇怪错误 这非常有效: .button{ :id => "<%= 'class_name' %>" } 更新: 来自下划线模板引擎。因此,这不是雇员再培训局或任何类型的事情。我在生成haml时没有遇到错误,但我是通过javascript得到的。这应该可以 .button{:class => "#{class_name}"} 这应该行得通 .button{:class => "#{class_name}"} 假
.button{ :id => "<%= 'class_name' %>" }
更新:
来自下划线模板引擎。因此,这不是雇员再培训局或任何类型的事情。我在生成haml时没有遇到错误,但我是通过javascript得到的。这应该可以
.button{:class => "#{class_name}"}
这应该行得通
.button{:class => "#{class_name}"}
假设
.button{:id=>“}
正在工作,我假设您将:escape\u attrs
设置为false,并且可能将:attr\u wrapper
设置为”
,这将产生以下输出:
给您带来麻烦的位,.button{:class=>“”}
,将产生:
当Haml将
语法(按钮
)中的类
元素与属性散列(
)的类条目内容组合在一起时,会导致该问题.Haml将后者视为一个空格分隔的列表,添加按钮
元素,然后对结果数组进行排序,生成您看到的输出。(将列表视为空格分隔的列表对“pure”有意义)但是当javascript框架以这种方式使用它时,它就会崩溃。排序的原因是为Haml的测试套件提供一致的类条目顺序。)
解决方法是不要同时使用
语法和属性散列中的:class
项–只需使用类
项:
%div{:class=>“按钮”}
产生:
另一种解决方法(您已经发现)是从下划线模板中删除空格,这样Haml将其视为单个实体,而不会将其拆分。Given
.button{:id=>“”
正在工作,我假设您将:escape\u attrs
设置为false,并且可能将:attr\u wrapper
设置为“
,这将产生以下输出:
给您带来麻烦的位,.button{:class=>“”}
,将产生:
当Haml将
语法(按钮
)中的类
元素与属性散列(
)的类条目的内容组合在一起时,会导致该问题。Haml将后者视为一个空格分隔的列表,添加按钮
元素,然后对结果数组进行排序,生成您看到的输出。(像这样将列表视为一个空格分隔的列表对于“纯”HTML来说是有意义的,但当javascript框架以这种方式使用它时,它会崩溃。排序的原因是为Haml的测试套件提供一致的类条目顺序。)
解决方法是不要同时使用
语法和属性散列中的:class
项–只需使用类
项:
%div{:class=>“按钮”}
产生:
另一个解决方法(您已经发现)是从下划线模板中删除空格,因此Haml将其视为单个实体,而不是将其拆分。javascript正确返回
类名。
?因为在中可以添加类,看起来您忘记了
来自ERb,而不是Haml。这里不是erb,而是下划线模板。“class\u name”只是一个测试字符串,我用来复制我得到的错误。可能相关:javascript正确返回class\u name
?因为在中可以添加类,看起来您忘记了
来自ERb,而不是Haml。这里不是erb,而是下划线模板。“class_name”只是一个测试字符串,我用来复制我得到的错误。可能相关:过于复杂了.button{:class=>class_name}
就足够了-不需要使用带插值的字符串。这不是ruby/haml错误,而是javascript错误。我使用下划线模板引擎。太复杂了.button{:class=>class_name}
就足够了-不需要使用带插值的字符串。这不是ruby/haml错误,而是javascript错误。我使用下划线模板引擎。谢谢你的精彩解释!针对常见问题的精益解决方案。感谢您的精彩解释!对常见问题的精简解决方案。
.button{:class => "#{class_name}"}