Javascript 如何从html加载js.erb
又过了一天,又过了一个晚上,我在JS和JQuery上撞了头 我想通过HTML调用一个页面(并在标题中显示路由),但也要让它加载一个js.erb脚本。或者,我想远程调用js.erb脚本,但也要更改http头以指示新路由 我想要这个是因为: a) 我想学习,这让我很沮丧 b) 当前,当用户刷新时,不会显示其当前页面,而是显示远程=>true调用的页面;;对于用户来说,返回到一个他不记得的页面是令人困惑的 我正在实现JQuery.pageless插件。我远程调用user/show页面,这是我的show.js.erb文件中的内容:Javascript 如何从html加载js.erb,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,又过了一天,又过了一个晚上,我在JS和JQuery上撞了头 我想通过HTML调用一个页面(并在标题中显示路由),但也要让它加载一个js.erb脚本。或者,我想远程调用js.erb脚本,但也要更改http头以指示新路由 我想要这个是因为: a) 我想学习,这让我很沮丧 b) 当前,当用户刷新时,不会显示其当前页面,而是显示远程=>true调用的页面;;对于用户来说,返回到一个他不记得的页面是令人困惑的 我正在实现JQuery.pageless插件。我远程调用user/show页面,这是我的show
$(function(){
$("#container").html("<%= escape_javascript(render '/users/show') %>");
$('#relationship_list').pageless({ totalPages: "<%= @reviews.count %>"/5+1
, url: '/reviews'
, params: {id: "<%= params[:id] %>"}
, loaderMsg: "loading"
});
});
$(函数(){
$(“#容器”).html(“”);
$(“#关系_列表”)。无页({totalPages:”“/5+1
,url:“/reviews”
,参数:{id:}
,loaderMsg:“正在加载”
});
});
现在这个代码是A-OK。从show.js.erb远程调用时,它可以工作。问题是我想通过html加载“用户显示”页面,而不是远程加载。这意味着无法加载此脚本。我需要找到另一种不显眼的方式来加载它
我想重申:代码中没有bug
希望有人能帮忙。另外请注意:有人写了关于使用gon gem来解决这个问题的文章。不适合我-我真的想在没有gems的情况下解决这个问题。听起来你通过远程调用(我假设在单击链接或按钮后有一个AJAX GET请求)加载页面,这可以正常工作,但地址栏中的URL不会更新吗 你在找那个 更新show.js.erb文件,如下所示:
$("#container").html("<%= escape_javascript(render '/users/show') %>");
history.pushState(null, "Page Title", "<%= user_path(@user) %>");
$(“#容器”).html(“”);
history.pushState(null,“页面标题”和“”);
我认为你应该把问题说清楚。你是在寻找一个bug,还是一种做事的方法。只要看看你的代码块,我想知道你的URL是否缺少后面的/
?我能知道你在这里到底想做什么吗$(“#container”).html(“”)代码>刚刚编辑了问题@该字符串将“show”视图呈现到容器ID中。