Javascript 如何将配置选项传递给Rails中的flat Picker?

Javascript 如何将配置选项传递给Rails中的flat Picker?,javascript,ruby-on-rails,date,Javascript,Ruby On Rails,Date,我有这个表格,我正试图实现。我已经设法让日历正常工作,并按预期保存了日期,但我似乎无法让它使用我在数据集中传递的配置选项(我特别需要能够选择日期之外的时间) 这是HTML的输入字段: <%= f.text_field :authorized_at, data: { controller: "flatpickr", attributes: {enableTime: true, dateFormat: "Y-m-d H:i"} }, placeholde

我有这个表格,我正试图实现。我已经设法让日历正常工作,并按预期保存了日期,但我似乎无法让它使用我在数据集中传递的配置选项(我特别需要能够选择日期之外的时间)

这是HTML的输入字段:

<%= f.text_field :authorized_at, data: { controller: "flatpickr", attributes: {enableTime: true, dateFormat: "Y-m-d H:i"} }, placeholder: "aaaa-mm-dd" , class: "form-control" %>
控制台日志记录
this.element.dataset.attributes
有效地返回一个带有相应选项的哈希值,但视图中的日历不显示时间选择器

有没有关于我遗漏了什么的线索

我通过直接在控制器散列中传递选项使其工作,如下所示:

flatpickr(this.element, {enableTime: true, dateFormat: "Y-m-d H:i"});
但是将属性数据集存储在一个变量中并传递它是不起作用的

编辑:好的,问题是attributes数据集将键作为字符串发送,而它需要一个js对象

因此,我必须调用JSON.parse并传递数据集以再次将其转换回来,结果它成功了:

    connect() {
    let config = JSON.parse(this.element.dataset.attributes)
    console.log("Hello flatpickr")
    flatpickr(this.element, config);
  }

据我所知,您必须将类名作为第一个参数传递,而不是元素本身。我通过直接在控制器散列中使用选项成功地使其工作。但是向它传递一个变量来存储选项的散列是不起作用的。可能是因为您将配置变量包装在了
{}
本身中。最后,在散列中有一个散列?同样,在控制器中直接传递选项,我使用符号{enableTime:true,dateFormat:“Y-m-dh:I”};而控制台记录数据集会返回字符串而不是符号{“enableTime”:true,“dateFormat”:“Y-m-dh:i”}。也许这就是我使用JSON.parse将属性数据集转换为js对象的问题,现在它可以工作了。谢谢
    connect() {
    let config = JSON.parse(this.element.dataset.attributes)
    console.log("Hello flatpickr")
    flatpickr(this.element, config);
  }