Javascript 在.js.erb文件中,只有一个条件有效

Javascript 在.js.erb文件中,只有一个条件有效,javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 4,在.js.erb文件中,只有一个条件有效 var price = <%= @price %> // assigned for substitution, dont take this a concern <%- if @price.nil? %> alert("if"); // JS code if true <%- else %> alert("else"); // JS code if false <%- end %> 因

在.js.erb文件中,只有一个条件有效

var price = <%= @price %> // assigned for substitution, dont take this a concern
<%- if @price.nil? %>
   alert("if");
  // JS code if true
<%- else %>
   alert("else");
  // JS code if false
<%- end %>

因为如果您的价格为零,则会生成以下代码

var price = nil // assigned for substitution, dont take this a concern
这将导致错误
nil未定义

因此,不是回显
nil
值,而是回显
false或0

注意:别忘了在javascript中加入Semilclon

var price = <%= @price %>;
案例2:如果@price为22。因此,您生成的输出将如下所示

    var price = 22 // assigned for substitution, dont take this a concern
    alert("else")
    // will work perfectly fine.

不明白你想说什么?如果价格为零,请检查打印内容,这样你的输出将与我在回答中给出的相同。所以在JavaScription中,他们的答案与nil完全不同。你的答案是相似的。最新答案
    var price = nil // assigned for substitution, dont take this a concern
    // above line will give you error nil is not defined
    alert("if")
    var price = 22 // assigned for substitution, dont take this a concern
    alert("else")
    // will work perfectly fine.