【问题标题】:Dependent dropdown with vue js (without ajax)带有 vue js 的依赖下拉列表(没有 ajax)
【发布时间】:2017-06-28 12:11:13
【问题描述】:

我正在尝试使用 vue js 创建一个依赖下拉列表。我创建了 2 个下拉菜单:

    <div id="app">
    <div class="row">
        <label for="100">One</label>
        <select v-model="val1" name="" id="100">
            <option value="1">one</option>
            <option value="2">two</option>
            <option value="3">three</option>
        </select>
        <div id="hide" v-if="show">
            <label for="200">Two</label>
            <select name="" id="2">
                <option value="11">ten</option>
                <option value="12">eleven</option>
                <option value="13">twelve</option>
            </select>
        </div>
    </div>
</div>

还有我的 vue 脚本

<script type="text/javascript">
new Vue({
    el: '#app',
    data: {
        value: 2,
        val1:'',
        show:false
    }
computed: {
    showNext: function() {
      if (this.value == this.val1) {
        show:true
      }
    }
}
});
</script>

根据我的要求,第一个下拉菜单应该可见,第二个下拉菜单不应该显示。如果从第一个下拉列表中选择了值为 2 的选项,则应显示该选项,如果选择了其他不满足 if 语句的选项,则应保持隐藏状态。

但在我的情况下,两个下拉菜单在页面开头都可见。可能是什么错误?

【问题讨论】:

    标签: javascript vue.js vuejs2


    【解决方案1】:

    你误会了computed。另外,我建议使用 === ,而不是 ==

    您的computed 应该是show

    computed: {
        show (): {
          if (this.value === this.val1) {
            return true;
          }
         else
            return false;
        }
    }
    

    如果问题仍然存在,请尝试创建快速 JSFiddle,我会帮助您解决它。

    【讨论】:

    • 这是fiddle,你能重构它吗?
    • 现在一切正常 :) 你不应该使用 v-if={{ show }} 。正确用法是:v-if='show'
    猜你喜欢
    • 2018-12-31
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2015-04-07
    • 1970-01-01
    相关资源
    最近更新 更多