Как сделать умножение на vue js inline click @click событие - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь выполнить умножение в циклах v-for для элементов массива, которые я могу легко выполнить сложение: product.q ++ и вычитание, но с умножением я столкнулся с проблемами, вот мой короткий код

<div v-for="product in products">
    <span @click="product.q++,product.wt*=product.q">CLICK ME</span>
</div>
if array is [1.215]; its a long array just for demonstration purpose iam using one element.

Результат: 1,215, затем 2,43, затем 7,290000000000001, что я хочу и что правильно = 1,215, затем 2,43, затем 3,645

Я также пробовал @ click = "product.q ++, product.wt = product.wt * product.q "

примечание: с каждым щелчком мое значение q увеличивается, и я хочу умножить его только на старое значение, я полагаю. ie. То, что я хочу 1.215 * 1, 1.215 * 2,

, но он делает это - 1.215 * 1, 2.43 * 2 и удвоение помощи.

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

У меня нет проблем с вашим кодом.

new Vue({
  el: "#app",
  data: {
    products: [{
      wt: 1.215,
      q: 1,
      output: 0
    }]
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <div v-for="product in products">
    <span @click="product.q++,product.output=product.wt*product.q"> CLICK ME</span>
  </div>
  <div v-for="product in products">{{product}}</div>
</div>
0 голосов
/ 18 июня 2020

Logi c следует удалить из слоя шаблона. @click должен вызывать method из updateThisProperty, который затем соответствующим образом обновляет свойство элемента массива.

В зависимости от других структур кода это может быть мутация, вычисленная, или просто установив значение данных.

...