问题标签 [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 投票
1 回答
322 浏览

javascript - 在 Rails 上使用stimulusjs 的“页面特定的 Javascript”

我可以知道,我们可以使用stimulusjs框架实现“使用Turbolinks 在Rails 应用程序中组织Javascript ”一文中提到的“特定于页面的Javascript”加载吗?

谢谢。

0 投票
1 回答
312 浏览

quill - 使用 StimulusJS 和 Quill 编辑器的陈旧数据

我正在将 Quill 编辑器与 Rails 集成,并希望使用StimulusJS来控制它。本质上,我在 Rails 表单上有一个字段,其中存储了 html,它变成了 Quill 富文本编辑器。还有 2 个其他字段使用来自 Quill 的数据:纯文本(去除标签)和增量(更改日志)。

然后通过通常的表单提交将所有三个都保存到数据库中。

几乎可以工作了。

表单和控制器代码

刺激控制器

问题

当用户在编辑器字段中键入时,先前保存的数据将作为 delta / 纯文本复制到 textTarget 和 deltaTarget 字段。在下图中,'asdasdasdsa' 的值先前已保存到该字段中,而用户只是键入了 'hhh'。

预期行为

在每次击键时,实际文本将被转换为增量或文本并存储在 2 个字段中。

任何帮助将不胜感激。:咧嘴笑:

编辑

@jhchen 每次击键都会产生与现场相同的原始数据。更改会反映在屏幕上,但不会反映在 2 个输入或控制台中。

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
246 浏览

ruby-on-rails - --webpacker=stimulus 是否会以某种方式禁用 form_with remote:true?

这可能是一场野鹅追逐。导轨 5.2,红宝石 2.5

情况1:

  • 使用 rails new --webpack=stimulus
  • rails 生成脚手架事件名称:字符串
  • 将 form_with 编辑为没有 remote:true
  • 将 format.js 添加到控制器
  • 创建一个事件

意外:客户端继续请求html,也就是好像remote:true依然有效

案例二:

  • 在没有 --webpack=stimulus 的情况下使用 rails new
  • rails 生成脚手架事件名称:字符串
  • 将 form_with 编辑为没有 remote:true
  • 将 format.js 添加到控制器
  • 创建一个事件

正如预期的那样,我收到一个错误,因为我没有 create.js.erb

因此,似乎 webpack=stimulus 和 form_with 的远程行为之间可能存在联系。如果没有 --webpack=stimulus Rails 5.2 form_with 的行为与我预期的一样,并且由于某种原因,即使远程 = true,当我“提交”时请求 html 而不是 javascript 时,分派回服务器也是如此。能有联系吗?

0 投票
2 回答
3450 浏览

javascript - 刺激:如何处理具有相同目标名称的重复项目

我有一个项目列表,每个项目都有一个链接可以单击以进行编辑。当他们单击该编辑链接时,我正在使用刺激使编辑“模态”表单可见。将要编辑的内容的 id 以 id= 的形式出现在列表的相应链接标签上

因此,编辑链接如下所示:

<td><a data-action="click->content#edit" data-target="content.editBtn" id="<%= url_for(content) %>")>Edit</a></td>

这个想法是刺激控制器中的 content#edit 动作检查并定位它的 id 并使用它来编辑正确的行。

但是,我认为我遇到的问题是,因此该列表的所有行都有一个具有相同名称的数据目标,并且错误的(第一个?)被绑定到目标。

但是,如果我想通过例如将 id 附加到每个数据目标来使每个数据目标不同,那么现在我在 controller.js 中有一个很长的目标列表,所以这没有任何意义。

唷,我希望你跟着那个。正确的处理方法是什么?

0 投票
1 回答
1085 浏览

javascript - 如何将库添加到 webpacker 以在 Stimulus JS 控制器中使用

我想在我的Stimulus js 控制器中使用dayjs库(而不是 moment),但我不断收到一条错误消息:

dayjs 未定义

在此处输入图像描述

我正在使用带有 Webpacker 和 Stimulus 的 Rails 5.2。

我添加了dayjs通过yarn add dayjs --save它添加到/package.json

/package.json

为了通过 webpacker gem 在 webpack 中连接 dayjs,我将其添加到/app/javascript/packs/application.js

/app/javascript/packs/application.js

0 投票
1 回答
45 浏览

stimulusjs - 如何获取所有子目标

我的问题是如何获取所有嵌套控制器的数据目标值?


例子:

事件有多个任务。所以,我有事件任务控制器。我想从任务获取内容值到事件控制器。

尝试过这样的事情:

const nodes = this.data.element.childNodes

或者this.contentTarget.dataset

在任务视图中,我有:

data-target="task.content event.content"

因此,有一个 Event 控制器实例和 n 个 Task 控制器。如何获得所有任务标题?

0 投票
0 回答
757 浏览

javascript - 如何定义可从类的所有方法访问的变量?

我是 JavaScript 新手,可能试图用它来模拟 Ruby。我使用 StimulusJS,但我认为这个问题一般适用于 JS。

我的目标是运行一个方法(单击按钮),该方法将从按钮中获取并显示该类别的所有子类别。该方法/函数将首先获取数据,然后操作 DOM。我想将它们分成两个方法,但是当我displaySubcategories从第一个方法 ( ) 中调用另一个方法 ( ) 时getSubcategories,值会event发生变化。与块this中的相同fetch- 我需要先将其分配给self以后能够与对象本身相关联。

有一个更好的方法吗?就像所有方法都可以访问的变量(Ruby 中的实例变量)?或者我根本不应该将它们分成两个函数(不是 JS 方式)?

费用#getSubcategories">

0 投票
0 回答
748 浏览

javascript - 如何使用刺激 js 和 rails 创建向导多步骤表单

我正在开发一个 Rails 5.2 应用程序,我想创建一个多步骤表单编辑器(例如用于编写新问题的 Stackoverflow),但我不太了解从哪里开始。

查看stackoverflow,志同道合的问题和答案似乎很旧,与我正在寻找的不匹配。如果不是真的需要,我想避免滥用 jQuery,因为我意识到,Stimulus JS 可以帮助我做到这一点。

0 投票
1 回答
692 浏览

ruby-on-rails - javascript/packs 中的所有 js 文件都没有加载到我的生产应用程序中

该应用程序运行良好。它是带有 StimulusJS 的 Rails 5.1。

我试过在服务器上做

没有效果。

似乎无法访问

这是production.rb中的相关代码

以及显示错误的控制台屏幕

浏览器控制台日志

0 投票
2 回答
815 浏览

ruby - Rails UJS link_to destroy 迁移到 webpack 后无法正常工作

我有一个 Rails/webpacker/stimulus 项目。今天我将资产管道迁移到 webpacker。除了一个细节,一切都很好。

Link_to 按钮调用直接指向 show 操作的 destroy 方法。remote:true 标签也不起作用。ajax:beforeSend 动作不会被触发,确认框也不会被加载。

我在 Stackoverflow 上发现了许多类似的案例,大多数都提到 Rails UJS 没有正确加载,这里似乎也是这种情况。但是,这些示例中的问题不使用 webpack。

Stackoverflow 上的一些帖子提到使用 button_to 而不是 link_to。但这不是我正在寻找的解决方案,我希望能够使用 remote:true 和 ajax 回调。

有人看到我的设置中的缺陷吗?在此先感谢您的任何建议!

应用程序.js:

包.json:

环境.js