【问题标题】:Javascript into CoffeeJavascript 变成咖啡
【发布时间】:2016-06-08 06:24:14
【问题描述】:

我在 rails 中遇到了一些 javascript 代码。我使用此代码动态制作两个下拉菜单。我需要将代码“翻译”成 js.coffee,但我不知道该怎么做。

这是我的 javascript 代码:

    <script>
$(document).ready(function() {
        $('#categories_select').change(function() {
          $.ajax({
            url: "<%= update_subcategories_path %>",
            data: {
              category_id : $('#categories_select').val()
            },
            dataType: "script"
          });
        });
      });
</script>

我用这个试过了,但它不起作用:

$ ->
  $(document).on 'change', '#categories_select', (evt) ->
    $.ajax 'update_subcategories',
      type: 'GET'
      dataType: 'script'
      data: {
        country_id: $("#categories_select option:selected").val()
      }
      error: (jqXHR, textStatus, errorThrown) ->
        console.log("AJAX Error: #{textStatus}")
      success: (data, textStatus, jqXHR) ->
        console.log("Dynamic category select OK!")

这是我的表格:

    <%= form_for(@search) do |f| %>
<%= f.collection_select :category_id,  @categories,  :id, :name, {:prompt   => "Select category"}, {:id => 'categories_select'} %>
<%= f.collection_select :subcategory_id, @subcategories, :id, :name, {:prompt   => "Select subcategory"}, {:id => 'subcategories_select'} %>  

使用脚本它工作正常,但我想从我的 html 文件中获取这个 javascript。谁能帮我解决这个问题?

感谢您的帮助!

【问题讨论】:

  • 控制台有什么错误?
  • 您可以使用js2coffee 等服务来转换现有代码。我可以看到,您在咖啡示例中的数据中使用了“country_id”,但在 javascript 中使用了“category_id”。
  • 谢谢你,玛达林!我可以在控制台中找到错误。 'update_subcategories' 只是错误的路径face palm

标签: javascript jquery ruby-on-rails coffeescript


【解决方案1】:

就其价值而言,我认为您似乎已尝试将代码转换为 CoffeeScript 同时对其进行更改。你应该先做第一个,检查它是否有效,然后再做第二个。

这为我编译,并编译为与您上面相同的 javascript。对你起作用吗?如果是这样,请从那里继续:

$(document).ready ->
  $('#categories_select').change ->
      $.ajax
        url: "<%= update_subcategories_path %>",
        data: 
          category_id : $('#categories_select').val()
        dataType: "script"

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2018-05-18
    相关资源
    最近更新 更多