问题标签 [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.
ruby-on-rails - 如何使用刺激从表单选择菜单的选择选项中检索数据属性?
我有一个选择菜单,它是一个刺激目标。该选择的每个选项都有一个自定义数据属性。当该选择更改时,我需要刺激控制器从所选选项中读取数据集属性……而不是选择菜单目标。
在控制器动作中,event.currentTarget 是设置目标属性的选择菜单。相反,我希望它是选定的选项。
因此,当我在刺激控制器中调用 event.currentTarget.dataset.value 时,我实际上是在从所选选项中寻找 data-value='xxx' 。但是,刺激是在目标选择菜单上寻找数据值。
更改目标菜单时,如何从所选选项返回“xxx”数据值属性?
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 并在缓存前删除它。
这就是现在的样子
我面临两个错误
和以前一样
提前致谢!干杯
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 获取序列化数据到我的排序操作?
javascript - 如何检查 StimulusJS 中的所有目标值是否已更改?
我有一个索引页面,我必须在其中过滤发票,due_date
以便为批量版本做好准备。这个想法是让提交按钮保持禁用状态,直到 astart_date
和end_date
被选中。
我simple_form
使用 flatpickrJS 进行了以下工作,并且已将其添加data-targets
到其输入字段中:
我也有这个simple_form
选项来选择due_date
所有发票都将更新到的一个,并且我需要保持禁用此表单的提交按钮,直到targets
选择了所有必需的(即直到在第一个表单中选择了开始和结束日期)。
这是我的 Stimulus 控制器,但我不知道如何检查是否requiredTargets
已全部选中,以便启用禁用的按钮。
javascript - 在 Javascript 中,如何在没有硬编码和比较值的情况下检查 DOM 元素输入是否已更改?
我有以下StimulusJS控制器,旨在跟踪某些required
元素(flatckpickr日期选择器)。
一旦选择了所有这些日期选择器的日期,我必须在表单中启用提交按钮。
我在跟踪用户输入了所有必需的输入时遇到了问题,因为这应该是一个可重用的控制器,所以我无法对值进行硬编码并与之进行比较。
什么是检查所有人requiredTargets
都已收到用户输入的有效方法?
javascript - Jest 在错误时禁用大量 html 元素转储
我正在开玩笑地测试一个刺激控制器。每次出现错误时,它都会转储 HTML 元素的每个属性,这是无法读取的,而且我看不到错误,因为它超出了我的回滚缓冲区。
输出:
可以将该输出重定向到文件,但我只需要前 10 行。
javascript - 错误:使用了无效函数返回值
我在 Symfony 5 中使用 Stimulus,当我在我的 Stimulus 控制器中使用此代码时,PhpStorm 显示错误。
我怎样才能解决这个问题?
错误:使用了无效函数返回值
我的index()
功能是:
javascript - 在 Stimulus 框架中使用 DataTables 的问题
我在 webpack (刺激框架)中使用DataTables 。
我用 yarn 安装 jQuery 和 Datatables:
现在我在 Stimulus 中创建一个控制器:
当我在控制台中打开页面时显示错误:
我该如何解决这个问题?
javascript - 当事件名称包含点时如何拦截自定义事件?
我正在尝试从刺激自动完成库中拦截一个事件。
当我尝试拦截切换事件时,它工作正常。
我知道当用户选择一个新值时尝试拦截一个事件。 我在文档中读到:
当用户从自动完成字段中选择一个新值时, autocomplete.change会触发。事件详细信息包含所选结果的 value 和 textValue 属性。
...
当显示或隐藏结果元素时触发切换。
这个点令人惊讶。我检查了库的代码源。是的,有一个点。
好的,所以我尝试使用点,但是,在编译过程中,点上有语法错误。
当我尝试时没有任何反应:
当我尝试使用引号时没有任何反应。我的意思是,无论我做什么,日志总是空的。
如何拦截自定义事件autocomplete.change
?
infinite-scroll - 如何使用 Pagy 和 Stimulus.js 对数组进行分页?
我正在对一个数组进行分页,当我滚动到页面底部时,我正在每页加载页面。不幸的是,我的数组的某些块似乎不断返回,而不是新加载的数组位。知道这是怎么回事吗?
这是我的infinite_scroll_controller.js