问题标签 [stimulusjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
17 浏览

ruby-on-rails - 如何使用刺激从表单选择菜单的选择选项中检索数据属性?

我有一个选择菜单,它是一个刺激目标。该选择的每个选项都有一个自定义数据属性。当该选择更改时,我需要刺激控制器从所选选项中读取数据集属性……而不是选择菜单目标。

在控制器动作中,event.currentTarget 是设置目标属性的选择菜单。相反,我希望它是选定的选项。

因此,当我在刺激控制器中调用 event.currentTarget.dataset.value 时,我实际上是在从所选选项中寻找 data-value='xxx' 。但是,刺激是在目标选择菜单上寻找数据值。

更改目标菜单时,如何从所选选项返回“xxx”数据值属性?

0 投票
1 回答
293 浏览

ruby-on-rails - Turbolinks Rails 应用程序未捕获类型错误:无法读取属性“parentNode”

我正在尝试在 Ruby on Rails turbolinks 站点中使用 Freshdesk 小部件。

自从我开始使用此小部件以来,在初始页面加载后导航到其他页面时,我的控制台中总是出现以下错误:

这是我的代码在添加带有 id 的 div 之前(我在视图中将其称为部分,并将 ID 作为变量)

查看示例

<%= render "shared/freshdesk_widget", widget_id: 60000003593 %>

我考虑过使用eventListener turbolinks:before-cache来查找 div 并在缓存前删除它。

这就是现在的样子

我面临两个错误

和以前一样

提前致谢!干杯

0 投票
0 回答
106 浏览

javascript - 在 Rails 和 StimulusJS 中的 SortableJS 序列化

我一直在努力让 SortableJS 处理带有 todo 的多个列表并序列化 id。类似于 jQuery Sortable 序列化方法的工作方式。

每个列表中的待办事项总是从 1 开始,并随着待办事项的添加而增加,并随着待办事项的删除而减少。

例如:

待办事项清单一有三个待办事项

  • 待办事项 5,位置:1
  • 待办事项 1,位置:2
  • 待办事项 9,位置:3

待办事项清单二有五个待办事项

  • 待办事项 5,位置:1
  • 待办事项 1,位置:2
  • 待办事项 9,位置:3
  • 待办事项 17,位置:4
  • 待办事项 2,位置:5

我已经让 sortableJS 与stimulusJS 一起工作。一旦添加了任何其他列表,待办事项继续被视为它们都属于一个列表,因此如果有 8 个待办事项(列表 1 中的 3 个待办事项和列表 2 中的 5 个待办事项),则相应的位置将是 1-8 和不是 1-3 和 1-5。

这是我当前的配置:

drag_controller.js

todos_controller.rb

_todo_list.html.erb

将需要自定义排序路线作为采用序列化数据的集合。

排序操作将执行以下操作:

我知道使用该toArray()方法 ie this.sortable.toArray(),它将为我提供列表中的 id 数组。我不确定如何在我的 drag_controller.js 和 SortableJS 中实现这一点。如何从 drag_controller.js 获取序列化数据到我的排序操作?

0 投票
0 回答
494 浏览

javascript - 如何检查 StimulusJS 中的所有目标值是否已更改?

我有一个索引页面,我必须在其中过滤发票,due_date以便为批量版本做好准备。这个想法是让提交按钮保持禁用状态,直到 astart_dateend_date被选中。

simple_form使用 flatpickrJS 进行了以下工作,并且已将其添加data-targets到其输入字段中:

我也有这个simple_form选项来选择due_date所有发票都将更新到的一个,并且我需要保持禁用此表单的提交按钮,直到targets选择了所有必需的(即直到在第一个表单中选择了开始和结束日期)。

这是我的 Stimulus 控制器,但我不知道如何检查是否requiredTargets已全部选中,以便启用禁用的按钮。

0 投票
1 回答
384 浏览

javascript - 在 Javascript 中,如何在没有硬编码和比较值的情况下检查 DOM 元素输入是否已更改?

我有以下StimulusJS控制器,旨在跟踪某些required元素(flatckpickr日期选择器)。

一旦选择了所有这些日期选择器的日期,我必须在表单中启用提交按钮。

我在跟踪用户输入了所有必需的输入时遇到了问题因为这应该是一个可重用的控制器,所以我无法对值进行硬编码并与之进行比较。

什么是检查所有人requiredTargets都已收到用户输入的有效方法?

0 投票
1 回答
87 浏览

javascript - Jest 在错误时禁用大量 html 元素转储

我正在开玩笑地测试一个刺激控制器。每次出现错误时,它都会转储 HTML 元素的每个属性,这是无法读取的,而且我看不到错误,因为它超出了我的回滚缓冲区。

输出:

可以将该输出重定向到文件,但我只需要前 10 行。

0 投票
1 回答
4756 浏览

javascript - 错误:使用了无效函数返回值

我在 Symfony 5 中使用 Stimulus,当我在我的 Stimulus 控制器中使用此代码时,PhpStorm 显示错误。

我怎样才能解决这个问题?

错误:使用了无效函数返回值

我的index()功能是:

0 投票
1 回答
322 浏览

javascript - 在 Stimulus 框架中使用 DataTables 的问题

我在 webpack (刺激框架)中使用DataTables 。

我用 yarn 安装 jQuery 和 Datatables:

现在我在 Stimulus 中创建一个控制器:

当我在控制台中打开页面时显示错误:

我该如何解决这个问题?

0 投票
1 回答
117 浏览

javascript - 当事件名称包含点时如何拦截自定义事件?

我正在尝试从刺激自动完成库中拦截一个事件。

当我尝试拦截切换事件时,它工作正常。

我知道当用户选择一个新值时尝试拦截一个事件。 我在文档中读到

当用户从自动完成字段中选择一个新值时, autocomplete.change会触发。事件详细信息包含所选结果的 value 和 textValue 属性。

...

当显示或隐藏结果元素时触发切换。

这个点令人惊讶。我检查了库的代码源。是的,有一个点。

好的,所以我尝试使用点,但是,在编译过程中,点上有语法错误。

当我尝试时没有任何反应:

当我尝试使用引号时没有任何反应。我的意思是,无论我做什么,日志总是空的。

如何拦截自定义事件autocomplete.change

0 投票
0 回答
217 浏览

infinite-scroll - 如何使用 Pagy 和 Stimulus.js 对数组进行分页?

我正在对一个数组进行分页,当我滚动到页面底部时,我正在每页加载页面。不幸的是,我的数组的某些块似乎不断返回,而不是新加载的数组位。知道这是怎么回事吗?

这是我的infinite_scroll_controller.js