我用 HAML 替换了我的 ERB 文件,效果很好。但是,我有一些复杂的混合 javascript 和 erb 代码,在转换为 haml 时会失败。我知道绕过 haml 的 ":plain" 选项,但是当我使用下面的代码执行此操作时,erb 代码只是打印为文本,而不是解释。各位有什么解决办法吗?
在 JS 中用 HAML 替换 ERB 失败
- if (@active == "tasks")
:plain
$('#content_output').html("<div class='content_title task'></div><h3><%= I18n.t :task_all %></h3><%= escape_javascript(render('tasks/all_tasks', :tasks => @contact_tasks, :layout => 'normal')) %></div>");
$('#content_input').html("<div class='content_title task'></div><h3><%= I18n.t :task_new_title %></h3><%= escape_javascript(render('tasks/new_task')) %></div>");
$('a#tasks_tab').addClass('active');
这是原始的 js.erb 代码:
<% if (@active == "tasks") %>
$('#content_output').html("<div class='content_title task'></div><h3><%= I18n.t :task_all %></h3><%= escape_javascript(render('tasks/all_tasks', :tasks => @contact_tasks, :layout => 'normal')) %></div>");
$('#content_input').html("<div class='content_title task'></div><h3><%= I18n.t :task_new_title %></h3><%= escape_javascript(render('tasks/new_task')) %></div>");
$('a#tasks_tab').addClass('active');
<% end %>