我在我的 rails application.js 文件中实现了以下代码。当用户单击链接时, View 会重新加载完整的审阅者列表,而不是前 4 个:
$(document).ready(function(){
$("#more_reviewers").click(function(e){
$("#reviewer_list").html('<%= escape_javascript(render "restaurants/restaurant_reviewer_list", :venue => @restaurant, :limit => @restaurant.reviews.count) %>');
});
});
问题:代码没有向我显示列表,而是将 Rails 代码作为文本返回。所以在我的屏幕上,我看到的不是用户列表,而是:
'<%= escape_javascript(render "restaurants/restaurant_reviewer_list", :venue => @restaurant, :limit => @restaurant.reviews.count) %>'
这可能会很简单 - 我会很感激。
最佳答案
Rails 是一种服务器端编程语言。 Javascript 是客户端。您不能将 ruby 代码动态地放入您的网站客户端,因为它需要先在服务器上运行。
您必须创建一个运行此行的 Rails 脚本
<%= escape_javascript(render "restaurants/restaurant_reviewer_list", :venue => @restaurant, :limit => @restaurant.reviews.count) %>
然后使用 load()
将其加载到您的元素中,例如:
$(document).ready(function(){
$("#more_reviewers").click(function(e){
$("#reviewer_list").load('http://url.to/the/script/you/made');
});
});
这样,服务器会收到对您的脚本的请求,它会运行脚本(服务器端)并将输出 (html) 传送到可以呈现的 javascript(客户端)。
关于javascript - Jquery.html 显示文字代码而不是在 application.js 中呈现 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542971/