javascript - Jquery.html 显示文字代码而不是在 application.js 中呈现 html

标签 javascript jquery ruby-on-rails

我在我的 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/

相关文章:

javascript - 我如何在我的网页外部创建一个链接,目的是在 anchor 中打开我的网页,然后加载 iframe?

javascript - 自定义复选框的定位有问题

javascript - 如果我通过特定链接转到页面,如何在页面上应用 jQuery 的 load() 函数

ruby-on-rails - Ruby on Rails - Neo4J 连接被拒绝

JavaScript:回调访问另一个参数

javascript - 箭头函数是否比 v8 中的普通独立函数声明更快(性能更高、更轻)?

javascript - 更改 sinfo 消息的条目数

ruby-on-rails - 如何使用 simple_form 解决 undefined method `to_key' 错误

ruby-on-rails - rails_admin_globalize_field 支持文件上传以进行全局化翻译

javascript - ReferenceError:未定义电子