#html #ruby-on-rails #stimulusjs
#HTML #ruby-on-rails #stimulusjs
Вопрос:
- Это мой текущий скрипт:
<script> (() => { const application = Stimulus.Application.start() const calculationController = class extends Stimulus.Controller { static targets = [ "precio", "cantidad", "output" ] calculate() { this.outputTarget.textContent = this.precioTarget.innerHTML * this.cantidadTarget.value } } application.register("calculation", calculationController) })()
(() => {
const application = Стимул.Application.start()const totalController = class extends Stimulus.Controller { static targets = [ "valor", "total" ] total() { this.totalTarget.textContent = this.valorTarget.value = this.totalTarget.value } } application.register("total", totalController) })()
- И это то, что у меня есть в моем _form.html.erb, как раз та часть, где я использую что-либо стимулирующее
<% @client.catalog.products.each do |product| %> <tr data-controller="calculation"> <td><%= product.nombre %></td> <td data-target="calculation.precio"><%= product.precio %></td> <td><input data-action="change->calculation#calculate" data-target="calculation.cantidad" type="number" class="orden-field"></td> <td><span data-action="change->total#total" data-target="total.valor calculation.output"> </span></td> </tr> <% end %> <tr> <td></td> <td></td> <td>IVA:</td> <td><span data-target="calculation.output"></span></td> </tr> <tr> <td></td> <td></td> <td><%= form.label :total, "Total:", class: "orden-field" %></td> <td><!--<%= form.text_field :total, class: "orden-field" %>--><span data-target="total.total"></span></td> </tr> </tbody>
- Любые предложения о том, как я могу успешно получить общую сумму из 3 элементов?
Комментарии:
1. Почему бы просто не написать метод, который вы можете вызвать, чтобы вернуть сумму?
2. это потому, что последний столбец «Valor» не является столбцом в таблице, разве он не должен быть столбцом, чтобы я мог выполнить метод? если нет, то как бы я это точно сделал? Я не слишком знаком с методами.
3. Я имею в виду, что вы могли бы просто захватить все значения с помощью javascript, а затем добавить их и поместить в это поле. Существует множество различных способов, которыми вы могли бы достичь этого, что вы пробовали до сих пор?
4. единственный стимул я занимался этим некоторое время, возможно, я что-то упускаю, поэтому я пришел сюда, чтобы придумать более простой способ сделать это: (