从 html 获取字符串到 coffeescript

Get string from html to coffeescript

我似乎无法传递来自 html

的字符串
<div class="download-by-date" data-hello="dd/mm/yy">

到 coffeescript:

$('.datepicker').datepicker({ dateFormat: $(this).data('hello') })

这是 slim 文件中的代码

= render layout: 'shared/section', locals: { title: 'Export on Demand', description: "Use this section to export all orders within a particular date period or starting from a reference" } do
  .download-by-date data-hello='dd/mm/yy'
    .row
      .column.medium-6
        label

如何在我的 coffeescript 文件中正确读取 data-hello 属性?我试图在 coffeescript 中得到这个:

$('.datepicker').datepicker({ dateFormat: "dd/mm/yy" })

您可以使用其中之一:

/*
#coffee script:

$('.download-by-date').on 'click', ->
  $('.datepicker').datepicker { dateFormat: $(this).data 'hello' }
*/

//compiled javascript
$('.download-by-date').on('click', function() {
  return $('.datepicker').datepicker({
    dateFormat: $(this).data('hello')
  });
});

/*
#coffee script:

$('.download-by-date').on 'click', => 
  format = $('.download-by-date').data "hello"; 
  $('.datepicker').datepicker { dateFormat: format }
*/

//compiled javascript
$('.download-by-date').on('click', () => {
  var format;
  format = $('.download-by-date').data("hello");
  return $('.datepicker').datepicker({
    dateFormat: format
  });
});

注意使用 ->(细箭头)和 =>(粗箭头)之间的区别。粗箭头将回调函数绑定到定义点的 this 值。你想在这里使用细箭头。

更多信息请参考:
Bound (Fat Arrow) Functions
CoffeeScript, When to use fat arrow (=>) over arrow (->) and vice versa