Rumah  >  Soal Jawab  >  teks badan

Komponen templat ComboBox menggunakan VueJS

<p>我想使用 <kod>vuejs v3</code> 制作一个 <strong>Combobox</strong> 模板组件,为此我有以下代码:</p> <pre class="brush:html;toolbar:false;"><template> <select name={{selector_name}} class= "combobox" id={{selector_id}}> v-for=opt in {{selector_options}} <nilai pilihan=opt> memilih </option> </select> </template> <skrip> eksport lalai { nama: 'ComboBox', data() { kembali { nama_pemilih: null, id_pemilih: null, pilihan_pemilih : null, } }, alat peraga: { nama_pemilih: { jenis: rentetan, dikehendaki: benar }, id_pemilih: { jenis: rentetan, lalai: "kotak kombo" }, pilihan_pemilih: { jenis: Susunan, dikehendaki: benar } }, kaedah: { onChange: (acara) => { console.log(event.target.value); }, }, dikira: {}, } </skrip> </pra> <p>但是我使用 <kod>v-untuk</kod> 的方式对我来说似乎不正确,你能告诉我如何纠正吗?提前致谢。</p>
P粉550323338P粉550323338434 hari yang lalu451

membalas semua(1)saya akan balas

  • P粉616111038

    P粉6161110382023-09-04 16:19:58

    Saya melihat banyak perkara, untuk menjawab soalan anda dengan jelas, v-for digunakan pada elemen.

    <template>
        // For mor readability i recommend you do bind your property:
        //  - name={{selector_name}} become :name="selector_name"
        <select :name="selector_name" class= "combobox" :id="selector_id">
            <!-- v-for is required with a unique key, you can take the index and use it -->
            <option v-for="(opt, index) in selector_options" :key="`opt ${index}`" value=opt>
               {{ opt }}
            </option>
        </select>
    </template>
    

    Anda tidak boleh menentukan prop dan data dengan nama yang sama. Props, menyuntik sifat dan nilai ke dalam data. Tepat sama, tetapi data datang daripada ibu bapa dan anda menghantar nilai daripada ibu bapa kepada anak.

    Jadi jika anda perlu menghantar data, gunakan prop tetapi jangan tentukan ia di dalam data.

    Terdapat contoh yang berfungsi semua ini (saya menggunakan data dan bukannya prop untuk meningkatkan kebolehbacaan). < /p>

    balas
    0
  • Batalbalas