J'ai un tableau d'objets répertoriés dans un tableau et j'ai besoin d'obtenir la valeur de l'objet cliqué. Lorsque je clique sur l'un des nombres, il passe en boucle et n'obtient que la dernière valeur des tableaux.

Je suis en train de parcourir tous les objets du tableau, mais je ne parviens pas à choisir le seul objet que je sélectionne.

<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>

Mon tableau d'objets ressemble à ceci.

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

La sortie de la console est:

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

J'ai besoin d'obtenir le numéro de l'objet cliqué.

0
Kyle 6 nov. 2019 à 02:51

1 réponse

Meilleure réponse

Je ne vois pas de comparaison entre le nombre sélectionné et le nombre dans chaque objet que vous parcourez. Vous avez besoin de quelque chose comme ça:

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

selectedNumber est le nombre transmis à la méthode.

@click="onSelect(call.number)"

...

methods: {
    onSelect(selectedNumber) { ...
1
wdm 6 nov. 2019 à 00:33