Как я могу получить выбранное значение объекта в массиве по клику? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть массив объектов, перечисленных в таблице, и мне нужно получить значение объекта, по которому щелкнули. Когда я нажимаю на числа, он циклически перебирает и получает только последнее значение массива.

В настоящее время я перебираю все объекты в массиве, но не могу заставить его просто выбратьодин объект, который я выбираю.

<template>
  <div>
    <tbody>
        <tr v-for="(call, index) in filterSummary" :key="index">
          <td>
            <a
              @click="onSelect"
              class="waves-effect waves-dark green btn-small left"
              id="select_DID_button"
            >{{ call.number }}</a>
          </td>
          <td>{{ call.name }}</td>
          <td>{{ call.dataValues.volume }}</td>
          <td>{{ call.dataValues.inboundVolume }}</td>
          <td>{{ call.dataValues.outboundVolume }}</td>
          <td>{{ call.dataValues.totalDuration | formatDuration }}</td>
          <td>{{ call.dataValues.inboundDuration | formatDuration }}</td>
          <td>{{ call.dataValues.outboundDuration | formatDuration }}</td>
          <td>{{ call.dataValues.averageDuration | formatDuration }}</td>
        </tr>
      </tbody>
  </div>
</template>

<script>
export default {
  data() {
    return {
    }
  },
methods: {
    onSelect() {
      var obj = this.$store.state.callerActivitySummary;
      for (var i = 0; i < obj.length; i++) {
        var newNumber = obj[i].number;
        this.$store.commit("updateNumber", newNumber);
        console.log("Number: ", newNumber);
      }
      this.getCallerActivityDetails();
    }
  }
}
</script>

Мой массив объектов выглядит следующим образом.

{
  "items": [
    {
    "alternativeNames": [],
    "number": "012345678",
    "dataValues": {},
    "name": "Random name"
    }
  ]
}

Вывод на консоль:

Number:  111968948
Number:  49819811
Number:  0566561651
Number:  012345678

Мне нужно получитьчисло от объекта, по которому щелкнули.

1 Ответ

1 голос
/ 06 ноября 2019

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

if (selectedNumber === obj[i].number) {
    this.$store.commit("updateNumber", selectedNumber);
    break;
}

Где selectedNumber - число, передаваемое методу.

@click="onSelect(call.number)"

...

methods: {
    onSelect(selectedNumber) { ...
...