javascript - 如何在 json.erb 模板中渲染脚本标签

标签 javascript jquery ruby-on-rails json

我在 json.erb 模板中有以下 json 数据,并包含脚本标签。包含脚本标记后,我收到无效的 json 响应。下面的代码有什么问题。

{
  "name" : <%= @name %>,
  "totalRecords" : <%= @all_records %>,
  "filteredRecords" : <%= @filteredRecords %>,
  "data" : [
    <%= render partial: "user_list", collection: @users %>
  ]
}

<script type="text/javascript">
  $(document).ready(function(){
    $('#selectall').click(function () {
      //  .....
    });
  });
</script>

最佳答案

您不能包含<script>或 JSON 中的任何其他标签。这将使其无效。

另外,不要忘记将文本值括在引号中。否则,您的 JSON 将无效。

{
  "name" : "<%= @name %>",
  "etc.": "...",

要动态加载并执行 JavaScript 文件,您可以使用 jQuery.getScript() 方法或动态创建 script输入 javascript(如果您的项目中没有使用 jQuery)。

$.getScript('js/your-javascript.js');

关于javascript - 如何在 json.erb 模板中渲染脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37056965/

相关文章:

jquery - Grails 中长时间运行的异步调用和服务器推送

ruby-on-rails - 使用 rspec 和 autospec 运行第二次规范后出错

javascript - Metro 风格从网上加载 Js

javascript - HTML5-JS : Shoot Bullet From Facing Direction

jquery - 405(不允许方法)laravel 5 for ajax

javascript - 如果更改了文本字段,同时还选择了某个选项,则尝试隐藏部分

ruby-on-rails - Rails 中 form_for 中的附加参数

ruby-on-rails - 如何判断 Rails 应用程序正在使用哪个版本的 gem

javascript - 如果文本具有编码字符,则删除跨度标签问题

javascript - Node.js Mocha 测试 Restful API 端点和代码覆盖率