Почему условный рендеринг не работает для ввода формы в vuejs
У меня есть форма с вариантами выбора:
<div>
<select>
<option v-model="department" :value="n" v-for="n in ['Please select', 'Medicine', 'Dental']">{{n}}</option>
</select>
</div>
<div class="alignBtn">
<label><span> </span><input type="submit" v-on:click.prevent="generateSlip()" value="Submit" />
</label>
</div>
и на основе выбора в приведенном выше я хочу, чтобы отобразить содержимое заголовка:
<div v-if="{department} === 'Medicine'">
<h1>Option A</h1>
</div>
<div v-else>
<h1>Option B</h1>
</div>
но каждый раз выводится вариант B.
1 ответ
Решение
Я думаю, что v-model
Директива должна быть в select
элемент. Вы, вероятно, хотели это сделать..
<div>
<select v-model="department">
<option :value="n" v-for="n in ['Please select', 'Medicine', 'Dental']">{{n}}</option>
</select>
</div>
<div class="alignBtn">
<label><span> </span><input type="submit" v-on:click.prevent="generateSlip()" value="Submit" />
</label>
</div>
Вам также не нужно деструктурировать в этом случае. Так что вы можете использовать department
в вашем равенстве равенства непосредственно..
<div v-if="department === 'Medicine'">
<h1>Option A</h1>
</div>
<div v-else>
<h1>Option B</h1>
</div>