更改javascript中的ruby变量

Change ruby variable in javascript

本文关键字:变量 ruby 中的 javascript 更改      更新时间:2023-09-26

这是我在Dropdown中获取ID的jquery。

    $(document).ready(function(){
        $('#installationsDropDown1 li a').on('click', function(){
            Id = $(this).html();
        });
    });
</script>
    <div class="ibox-content graph">
      <%= high_chart('main-graph', @highcharts[Id]) %>
    </div>

如何将变量Id动态传递给视图中的ruby代码?

不能只将javascript代码中的变量传递给ruby代码。

如果我理解正确,你有两个选择:

当用户点击你的链接时,进行AJAX调用。这个调用将在div中呈现您的"high_chart"方法。因此,您必须创建一个操作和一个js.erb视图。类似于:

$("ibox-content.graph").html("<%= high_chart('main-graph', @highchart) %>");

您的@highchart变量将在控制器中使用您将与AJAX调用一起发送的参数(例如您的ID)进行实例化。

另一种方法是在加载页面时用ruby预加载所有图表。然后,您将在JS中管理您想要显示的内容。

假设这是在服务器上的erb视图中,那么使用jQuery就没有意义了。将jQuery留在客户端,让控制器处理rails服务器上的逻辑。

如果这是在客户端,则erb<%%>标签将无法工作,因为这些标签是由服务器呈现的。