【发布时间】:2019-01-07 17:04:59
【问题描述】:
所以我正在学习 vue,并且花了一些时间浏览文档,但还没有看到解决我问题的答案。这在很大程度上是由于使用 CLI(我是)与不使用 CLI 之间的命名法。
我正在尝试使它在单击一个单选按钮时显示一个 div,而当单击另一个单选按钮时显示另一个。这是我所拥有的。
模板:
<div id="daySelection">
<div class="o-m-day">
<div id="oneDay">
<p>One day?</p><input v-model="selected" type="radio" name="oneDay" id="" class="r-button" value="true">
</div>
<div id="multipleDays">
<p>Multiple days?</p> <input v-model="selected" type="radio" name="multDays" id="" class="r-button" value="false">
</div>
</div>
<!-- the div where the conditional render will be rendered -->
<div>
<!-- multiple days -->
<div v-show="selected" id="ta-multDays">
<textarea rows="10" cols="80" name="multDays" type="text" />
</div>
<!-- one day -->
<div v-show="!selected" id="i-oneDay">
<input type="text" name="r-oneDay">
</div>
</div>
</div>
这是脚本:
export default {
name: 'CreateTournamentForm',
data: function(e) {
return {
selected: Boolean,
}
},
}
上面我在控制台中收到一个错误,说数据需要是一个返回新实例的函数。我看到很多人和例子在不同的地方使用 vue 实例:
const app = new Vue({
el: '#app',
data: {
selected: true,
}
});
但是,每当尝试这个 Vue 时,都会向我发送一个警告,说它需要是一个函数。
[Vue 警告]:“data”选项应该是一个在组件定义中返回每个实例值的函数。
我也知道 v-show 会切换显示,所以我尝试将 div 的显示设置为:
display: none;
也没有。
【问题讨论】:
-
这可能是一个细节,但我建议在您的情况下使用
v-if和v-else而不是v-show。这样,如果您需要更改条件,您将只需要编辑 1 行而不是 2 行,如果条件变长,代码会更简单。
标签: javascript vue.js