我目前的图像标签设置如下:
<img v-if="highQuality" :src="post.data.url">
<img v-if="highQuality == false" :src="post.data.thumbnail">
如您所见,图像 src 会根据highQuality
是真还是假而变化。
我有一个带有两个布尔选项的选择标签,如果我从 false 开始并将其更改为 true,它会将图像更新为高质量源,但如果我将其设置回 false,它似乎保持高质量。所以我认为这是有条件的 vue 的糟糕尝试。
有没有更像"Vue"的写法?
编辑:额外代码
DOM
<select v-model="highQuality">
<option value="true">High Quality</option>
<option value="false">Low Resolution</option>
</select>
.JS
var app = new Vue({
el: '#app',
data: {
highQuality: false,
posts: [],
},
});
也许highQuality == false
条件失败,您确定将highQuality
设置为完全false
吗?
您无需复制标签,只需执行此操作即可:
<img :src="highQuality ? post.data.url : post.data.thumbnail">
问题是你的<option>
s。<select>
分配的是字符串,而不是布尔值。
请勿使用:
<option value="true">High Quality</option>
用:
<option :value="true">High Quality</option>
问题:
var app = new Vue({
el: '#app',
data: {
highQuality: false,
posts: [],
post: {data: {url: 'http://bc.id.au/images/fr_flag.gif', thumbnail: 'http://bc.id.au/images/de_flag.gif'}}
},
});
<script src="https://unpkg.com/vue"></script>
<div id="app">
<select v-model="highQuality">
<option value="true">High Quality</option>
<option value="false">Low Resolution</option>
</select>
<img v-if="highQuality" :src="post.data.url">
<img v-if="highQuality == false" :src="post.data.thumbnail">
</div>
固定:
var app = new Vue({
el: '#app',
data: {
highQuality: false,
posts: [],
post: {data: {url: 'http://bc.id.au/images/fr_flag.gif', thumbnail: 'http://bc.id.au/images/de_flag.gif'}}
},
});
<script src="https://unpkg.com/vue"></script>
<div id="app">
<select v-model="highQuality">
<option :value="true">High Quality</option>
<option :value="false">Low Resolution</option>
</select>
<img v-if="highQuality" :src="post.data.url">
<img v-if="highQuality == false" :src="post.data.thumbnail">
</div>