在我的rails应用程序中,我希望在我的“事件”中执行一定程度的JS。控制器,以及我的电影_兴趣'控制器。
我知道可以使用' params [:controller] == ...'来检查这个条件,但这是ruby代码。如何从javascript文件中完成此操作?
$(".search-results").on('click', ".movie-click", function(){
if (params[:controller] == "events") { //This is incorrect syntax, but shows more or less what I want to accomplish
$('#event_rt_id').val($(this).data("id"));
$('#movie-poster').html('<img id="selected-poster" src="' + $(this).data("poster") + '" />' );
}
});
答案 0 :(得分:1)
一种可能的解决方案是在每个页面上包含唯一的HTML元素。例如,在EventsController
呈现的网页上,您可以添加<div class="events">
。然后您的JavaScript代码可以检查这些元素的存在。
另一种选择是包含控制器名称,例如在body元素中。您可以在布局中执行此操作:
<body data-controller="<%= controller_name %>">
然后,您可以在JavaScript中使用控制器名称。
我更喜欢第一种解决方案。
答案 1 :(得分:0)
在application.html.erb中,添加以下代码
<script type="text/javascript">
window.controller = "<%=params[:controller] %>"
</script>
因此,在您的javascript中,您可以访问变量控制器,它会告诉您所在的控制器。