从rails控制器传递boolean到javascript以在条件中使用

时间:2013-01-31 02:18:01

标签: javascript ruby-on-rails-3 jquery twitter-bootstrap-rails

我在使用ajax处理的bootstrap模式中有一个表单。如果表单验证它将关闭模态或按预期显示验证错误。但是,如果根据控制器中保存的布尔值满足条件,我想在模态隐藏动画完成后重定向用户。虽然条件不会像写的那样工作,但它可以让你看到我想要完成的是什么:

$(document).ready(function() {
  $('#modal-window').modal({remote: true});
  $('#modal-window').modal('show');
  $('#modal-window').on('hidden', function(){
    var saved = <%= @bool %>;
    if(saved == "true"){
      $(window.location.replace("<%= some_url %>"));}
    });
})

3 个答案:

答案 0 :(得分:2)

您将保存设置为布尔值(可能是 - @bool var中的任何内容)

var saved = <%= @bool %>;

然后与字符串 "true"

进行比较
if(saved == "true"){

所以,如果你用

替换第二行
if(saved){

它会起作用

答案 1 :(得分:1)

替换

var saved = <%= @bool %>;

var saved = "<%= @bool %>";

答案 2 :(得分:0)

您在哪里发布此代码?如果您的表单位于index.html.erb下,那么在使用remote: true时,您需要一个index.js.erb文件,该文件将提供您希望在示例中运行的javascript。另外,请不要忘记使用j <%=j some_url %>转义返回网址。