Ruby on rails Ruby if条件在javascript文件中无法正常工作
控制器:Ruby on rails Ruby if条件在javascript文件中无法正常工作,ruby-on-rails,ruby,ruby-on-rails-3,rubygems,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Rubygems,Ruby On Rails 3.1,控制器: def AjaxView @vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col])) @col = params[:col] respond_to do |format| format.js { render :layout=>false } end end AjaxView.js.erb if('<%= @col %>
def AjaxView
@vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col]))
@col = params[:col]
respond_to do |format|
format.js { render :layout=>false }
end
end
AjaxView.js.erb
if('<%= @col %>' == 'colName'){
$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");
} else if('<%= @col %>' == 'colName2'){
$("#2").text("<%= escape_javascript(render(:partial => "var1")) %>");
}
if(“”==“colName”){
$(“#3”).text(““var”)%>”;
}else if(“”==“colName2”){
$(“#2”).text(““var1”))%>”;
}
查看部分:
_var.html.erb
<%= @vars[0].colName %>
_var1.html.erb
<%= @vars[0].colName2 %>
如果我改变这个密码
$("#3").text("<%= escape_javascript(render(:partial => "var") %>");
$(“#3”).text(““var”)%%>”;
至警报(“hi_one”)和
$("#2").text("<%= escape_javascript(render(:partial => "var1") %>");
$(“#2”).text(““var1”)%%>”;
向发出警报(“hi_two”)强>
它很好用
但是当我把上面的代码放进去时,它每次都会运行这两个代码,不知道为什么,是编译还是什么?出路是什么
渲染输出:
呈现测试/_var.html.erb(16.0ms)
渲染测试/AjaxView.js.erb(19.0ms)
在38ms内完成500个内部服务器错误
ActionView::Template::Error(缺少属性:colName):
1:
Firebug中的Javascripty输出为500错误如果('''='colName')为客户端JavaScript,则当前您的条件
这意味着
if('<%= @col %>' == 'colName'){
$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");
} else if('<%= @col %>' == 'colName2'){
$("#2").text("<%= escape_javascript(render(:partial => "var1")) %>");
}
DOM元素ID不能是数字,也不能是有效的HTML。David,我更改了它,但仍然收到相同的问题。它是否呈现任何内容?是的,每次都呈现两个脚本,这会产生冲突ActionView::Template::Error(缺少属性:colName):根据ajaxview.js,存在语法错误“var”)%>
应为“var”))%%>
和“var1”)%%>
应该是“var1”)%%>
谢谢迈克,这是一个很好的解释。它确实解决了我的问题。
<% if @col == 'colName' %>
$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");
<% elsif @col == 'colName2' %>
$("#2").text("<%= escape_javascript(render(:partial => "var1")) %>");
<% end %>