suchen

Heim  >  Fragen und Antworten  >  Hauptteil

v-for hat keine Möglichkeit, es zu installieren

Ich habe ein Problem mit meinem v-for. Ich rufe die API auf und rufe die Daten ab, aber das V-for wird nicht aktualisiert.

Das ist mein HTML:

<input list="listenomspartenaires" id="inputlistenomspartenaires" type="text" name="nominputlistenomspartenaires">
        <datalist id="listenomspartenaires">
           <option v-for="partenaire in listedespartenaires" :value="partenaire.nom" :key="partenaire.idpartenaire" :data-idpartenaire="partenaire.idpartenaire" />  <!--  -->
</datalist>

und mein JS:

<script lang="js">
    import { defineComponent } from 'vue';

    export default defineComponent({
        data() {
            return {
                listedespartenaires : []
            };
        },
        methods:{            
            SetNoms(lesnoms){
                this.listedespartenaires = lesnoms;
                alert(lesnoms);
            }
        },
        mounted() {
            fetch("https://localhost:7264/api/partenaires/GetNoms")
                .then((response) => response.text())
                .then((data) => this.SetNoms(data));
        }
    });
</script>

Die Warnung zeigt die Daten an, sodass sie problemlos abgerufen werden können, aber meine Eingabe ist ungültig.

Ich habe auch versucht, „listedespartenaires“ direkt vom Get aus zuzuweisen, ohne es durch die Methode zu übergeben, aber das Ergebnis ist das gleiche.

Ich habe es auch versucht this.$forceUpdate(); nachdem ich „listedespartenaires“ zugewiesen habe. Aber kein Erfolg.

Kann mir jemand helfen?

Danke,

Philippe

P粉988025835P粉988025835230 Tage vor475

Antworte allen(1)Ich werde antworten

  • P粉308089080

    P粉3080890802024-04-04 10:08:49

    尝试JSON。 parse() 你的回应:

    const app = Vue.createApp({
      data() {
        return {
          listedespartenaires : [],
          selected: null
        };
      },
      methods:{            
        setNoms(lesnoms){
          this.listedespartenaires = JSON.parse(lesnoms);
          //alert(lesnoms);
        }
      },
      mounted() {
        fetch("https://jsonplaceholder.typicode.com/users")
          .then((response) => response.text())
          .then((data) => this.setNoms(data));
      }
    })
    app.mount('#demo')
    
    
    {{ selected }}

    Antwort
    0
  • StornierenAntwort