• iview2 Selelt的二级联动


    在iview Select组件中是没有支持二级联动的,现在记录下具体使用:

    <template>
      <div class="m-article">
        <Form ref="formValidate" :model="formValidate"
              :rules="ruleValidate" :label-width="100"
              label-position="left">
          <FormItem label="文章栏目" prop="categoryId">
            <Select v-model="formValidate.categoryId"  @on-change="changeSecList"
                    style="200px">
              <Option v-for="item in categoryList"
                      :value="item.id" :key="item.id">
                {{ item.name }}</Option>
            </Select>
            <Select v-model="formValidate.secondname"
                    style="200px">
              <Option v-for="item in secondnameList"
                      :value="item.secondname" :key="item.secondname">
                {{ item.secondname }}</Option>
            </Select>
          </FormItem>
        </Form>
      </div>
    </template>

    js的主要代码

    <script>
      export default {
        data () {
          return {
            secondnameList: [],
            categoryList: [
              {
                "id":"5d638b9bcf1f7a000141b839",
                "name":"债券","secondnames":[
                  {
                    "secondname":"债券二级菜单1"
                  },
                  {
                    "secondname":"债券二级菜单2"
                  }
                ]
              },
              {
                "id":"5da1615f7deab70001eeea1c",
                "name":"股票","secondnames":[
                  {
                    "secondname":"股票二级菜单1"
                  }
                ]
              }],
            formValidate: {
              categoryId: '',
              secondname: '',
            },
            ruleValidate: ruleValidate,
          };
        },
        methods: {
          changeSecList(val) {
            this.secondnameList = []
            for (var i=0;i< this.categoryList.length; i++) {
              if (val === this.categoryList[i].id) {
                this.secondnameList = this.categoryList[i].secondnames
              }
            }
          }
        },
      };
    </script>

    其实 实现思路很简单,主要就是利用select组件中的on-change事件进行监听。当他改变的时候重新渲染二级菜单达到我们的效果。

    需要注意的几点是

    1.当我们修改一级菜单的时候默认返回的是value,所以在方法里面我是通过val值进行匹配,判断当时选择的是哪个一级菜单,然后渲染对应的二级菜单。

    2.我在Option里设置:value与:key的时候设置了不存在的值,所以会导致如下报错

     解决方法确保你设置的value与key当时是有值的状态即可。

    先做这些简单的介绍,如果有需要可以更深入的学习。

  • 相关阅读:
    Django----博客文章数据返回
    Django----admin模块初识
    Django搭建博客文章---模型层
    Js 提交 form 表单
    sql 查询 between and 和 >= <= 比较
    C# 未能加载项目文件
    不一样的 Null
    Js实现table单双行交替色
    C# 判断一个string型的时间格式是否正确
    利用 Label 小小的提升一下用户体验
  • 原文地址:https://www.cnblogs.com/yilihua/p/12529925.html
Copyright © 2020-2023  润新知