Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从html加载js.erb_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript 如何从html加载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

又过了一天,又过了一个晚上,我在JS和JQuery上撞了头

我想通过HTML调用一个页面(并在标题中显示路由),但也要让它加载一个js.erb脚本。或者,我想远程调用js.erb脚本,但也要更改http头以指示新路由

我想要这个是因为: a) 我想学习,这让我很沮丧 b) 当前,当用户刷新时,不会显示其当前页面,而是显示远程=>true调用的页面;;对于用户来说,返回到一个他不记得的页面是令人困惑的

我正在实现JQuery.pageless插件。我远程调用user/show页面,这是我的show.js.erb文件中的内容:

$(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中。