2017-03-24 2 views
0

ich eine vue Komponente wie diese:Wie kann ich Text auswählen, wenn Kategorie auf Combobox geklickt hat? (Vue.JS 2)

<script> 
    export default{ 
     template: '\ 
      <select class="form-control" v-model="selected" v-on:change="search">\ 
       <option v-for="option in options" v-bind:value="option.id" v-bind:disabled="option.disabled">{{ option.name }}</option>\ 
      </select>', 
     mounted() { 
      this.fetchList(); 
     }, 
     data() { 
      return { 
       selected: '', 
       options: [{id: '', name: window.trans.category.select}] 
      }; 
     }, 
     methods: { 
      search(e){ 
       window.location = window.BaseUrl + '/search?q=&cat=' + e.target.value; 
      }, 
      fetchList: function() { 
       this.$http.post(window.BaseUrl+'/category/list?parent_id=all').then(function (response) { 
        response.data.forEach(function(item){ 
         this.options.push({id:item.id, name:item.name}) 
        }, this); 
       }); 
      }, 
     } 
    }; 
</script> 

Wenn Kategorie geklickt hat, möchte ich über Text der Kategorie

Auf meinem Code erhalten, verwende ich diese: e.target.value zu erhalten ID ausgewählt und es funktioniert

Aber wie kann ich Text ausgewählt, wenn Kategorie geklickt?

Ich versuche dies: e.target.text, aber id nicht

Gibt es funktioniert jemand, der mir helfen kann?

+0

Ist das nicht in Variable: '' ausgewählt, die Sie in 'V-Modell 'verwenden? – Saurabh

+0

@Saurabh, ich möchte den Text nehmen. Kein Wert. Wenn ich 'console.log (this.selected)' ', ist das Ergebnis der Wert –

+0

Versuchen Sie stattdessen' v-bind: value = "option.name" ', lassen Sie es mich wissen. – Saurabh

Antwort

0

Da Sie beide id und name möchten, können Sie dies versuchen:

template: '\ 
     <select class="form-control" v-on:change="search">\ 
      <option v-for="option in options" v-bind:value="option.id" @click="selected=option.name" v-bind:disabled="option.disabled">{{ option.name }}</option>\ 
     </select>', 
    mounted() { 
     this.fetchList(); 
    }, 
+0

Wie kann ich es nehmen? Ich versuche 'console.log (this.selected)', das Ergebnis ist value id. Kein Text –

+0

Scheint, dass es nicht funktioniert. Weil es ruf 'v-on: change =" search "' zuerst vor dem Aufruf '@ click' ruft. –

+0

Erhalte einen Fehler, Es gibt einige Korrekturen vorgeschlagen [hier] (http://stackoverflow.com/questions/42991343/ how-can-i-add-selected-wenn-kategorie-angeklickt-auf-combobox-vue-js-2). – Saurabh

Verwandte Themen