【问题标题】:Rails 4 - Conditional JS with dependent-fields-railsRails 4 - 带有依赖字段的条件 JS
【发布时间】:2016-04-14 05:40:22
【问题描述】:

我正在尝试弄清楚如何在我的 Rails 4 应用程序中使用dependent-fields-rails gem。

我迷路了。

我已将 underscore.js 包含在我的供应商 javascripts 文件夹中,并更新了我的 application.js 以包含(就在底部,就在 require 树的上方):

//= require underscore
//= require dependent-fields


$(document).ready(function() {
    DependentFields.bind()
});

在我的简单形式中,我有:

<%= f.input :has_milestones, as: :boolean, boolean_style: :inline, :label => 'Any decision points?', id: 'check_project_milestones' %>

<%= content_tag :div, class: 'js-dependent-fields', data: {'checkbox-id': 'check_project_milestones', 'checkbox-value': 'true' } do %>        

  <div class="intpol2">
    Milestones
  </div>

  <%= f.simple_fields_for :milestones do |f| %>
    <%= render 'milestones/milestone_fields', f: f %>
  <% end %>
<% end %>

但是,当我重新启动服务器并呈现表单时,会显示具有 div id 的第一个问题(未选中复选框),并且内容标记内的内容也会显示。我希望在选中复选框之前将其隐藏。

我在driftingruby.com 上找到了一个教程,它展示了如何设置它。我唯一能猜到的是,也许需要涡轮链接才能完成这项工作?我禁用了它,因为我使用 olark。

当我检查控制台是否有错误时,我可以看到这个,这似乎是相关的:

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (underscore-min.map, line 0)

我还应该补充一点,我尝试了所有建议来回答我之前关于这个问题的问题,但找不到解决方案:Rails 4 - JS for dependent fields with simple form

谁能看到我做错了什么?

【问题讨论】:

  • 我的 underscore.js 中没有一行包含“sourceMapping”
  • 错误很明显,不管你喜不喜欢都在引用地图文件。
  • 但我的项目中似乎没有该文件
  • 你的 github 上有应用吗?

标签: javascript jquery ruby-on-rails underscore.js


【解决方案1】:

您遇到的是源映射。这允许您在处理缩小的 JS 文件时在浏览器的开发人员工具中使用可读代码进行调试。

缩小版的下划线在文件末尾有这一行:

//# sourceMappingURL=underscore-min.map

您的浏览器的开发者工具会在遇到此行时尝试下载underscore-min.map

如果你想摆脱错误,要么:

  1. underscore-min.js 中删除该行
  2. 将 underscore-min.map 和 underscore.js 添加到您的项目中。

【讨论】:

  • 我没有将 underscore.js 的生产版本(缩小版)添加到我的 javascript 文件夹中。我添加了开发版本,我知道它没有被缩小。鉴于我的项目中没有最小文件,您认为您的回答是否相关?
  • 我需要保存带有 .js 扩展名的 underscore-min.map 吗?想必我还需要将它添加到application.js中?
  • 我尝试将 underscore-min.map 文件添加到我的 vendor/javascripts 中,然后预编译资产。我又试了,js依赖的字段还是不行
  • 当我尝试将该文件请求到 app/assets/javascripts/application.js 时,我收到一条错误消息:找不到类型为 'application/javascript' 的文件 'underscore-min.map' '
  • 安装 gem 'underscore-rails' 然后捆绑它并重新启动 rails 服务器。
【解决方案2】:

您是否还添加了供应商的最小地图?

源映射用于在您的浏览器上进行 javascript 调试

下划线js也可以下载:写在哪里

源图

或:http://underscorejs.org/underscore-min.map

另见:Rails Assets - 404 with .map extension

【讨论】:

    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多