当前位置: 首页 > article >正文

<el-select> :remote-method用法

el-select :remote-method用法

    • 说明
    • 代码实现
      • 单选
      • 多选

说明

在 Vue.js 中, 是 Element UI 库提供的一个下拉选择框组件。:remote-method 是 组件的一个属性,用于指定一个远程方法,该方法将在用户输入时被调用,以获取下拉列表的选项数据。
使用 :remote-method,你需要在 Vue 实例中定义一个方法,该方法将接收用户输入的关键词作为参数,并返回一个 Promise 对象,该 Promise 对象解析为包含选项数据的数组。

代码实现

单选

<template>
  <div>
    <el-select v-model="selectedOption" placeholder="请选择" :remote-method="loadOptions" :loading="isLoading">
      <el-option
        v-for="option in options"
        :key="option.value"
        :label="option.label"
        :value="option.value"
      >
      </el-option>
    </el-select>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: null,
      options: [],
      isLoading: false
    };
  },
  methods: {
    loadOptions(query) {
      this.isLoading = true;
      // 在这里实现远程方法,返回一个 Promise 对象
      return new Promise((resolve, reject) => {
        // 模拟异步请求,这里应该是调用后端 API 获取数据
        setTimeout(() => {
          // 假设后端返回的数据格式为 { options: [{ value: '1', label: 'Option 1' }, { value: '2', label: 'Option 2' }] }
          const response = {
            options: [
              { value: '1', label: 'Option 1' },
              { value: '2', label: 'Option 2' }
            ]
          };
          resolve(response.options);
          this.isLoading = false;
        }, 1000);
      });
    }
  }
};
</script>

多选

实现多选功能,可以将 组件的 multiple 属性设置为 true,由于 multiple 属性被设置为 true,用户可以选择多个选项,selectedOptions 将会是一个数组,包含了所有被选中的选项的 value。

<template>
  <div>
    <el-select v-model="selectedOption" placeholder="请选择" :remote-method="loadOptions" :loading="isLoading" multiple>
      <el-option
        v-for="option in options"
        :key="option.value"
        :label="option.label"
        :value="option.value"
      >
      </el-option>
    </el-select>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: [],
      options: [],
      isLoading: false
    };
  },
  methods: {
    loadOptions(query) {
      this.isLoading = true;
      // 在这里实现远程方法,返回一个 Promise 对象
      return new Promise((resolve, reject) => {
        // 模拟异步请求,这里应该是调用后端 API 获取数据
        setTimeout(() => {
          // 假设后端返回的数据格式为 { options: [{ value: '1', label: 'Option 1' }, { value: '2', label: 'Option 2' }] }
          const response = {
            options: [
              { value: '1', label: 'Option 1' },
              { value: '2', label: 'Option 2' }
            ]
          };
          resolve(response.options);
          this.isLoading = false;
        }, 1000);
      });
    }
  }
};

http://www.kler.cn/a/391773.html

相关文章:

  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 3D绘制动态爱心Matlab
  • 基于非时空的离身与反身智能
  • 【C#设计模式(8)——过滤器模式(Adapter Pattern)】
  • 机器学习——贝叶斯
  • 如何在Python中实现一个简单的搜索引擎:从零开始的指南
  • djang5 官网_polls_app_03( 关于Views)
  • SpringBoot单体服务无感更新启动,动态检测端口号并动态更新
  • Python学习从0到1 day26 第三阶段 Spark ② 数据计算Ⅰ
  • element-plus menu菜单点击一级导航不选中二级导航的问题
  • C语言之用getopt解析命令行参数
  • java:使用Multi-Release Jar改造Java 1.7项目增加module-info.class以全面合规Java 9模块化规范
  • Unet++改进24:添加DualConv||轻量级深度神经网络的双卷积核
  • 无人机飞手考证,地面站培训技术详解
  • uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
  • PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸
  • SpringBoot项目快速打包成jar项目与部署
  • 深入浅出《钉钉AI》产品体验报告
  • Spring Boot编程训练系统:架构设计精要
  • 虚拟机linux7.9下安装mysql遇到的问题
  • 计算机低能儿从0刷leetcode | 36.有效的数独
  • 【数学二】线性代数-向量-正交规范化、正交矩阵
  • 一篇文章学会ES6 Promise
  • 8 ARM-PEG-FA由八个臂状结构的聚乙二醇(PEG)核心与叶酸(FA)分子通过化学连接而成
  • 什么是大数据治理?在企业数字化转型过程中有什么用?
  • PostgreSQL存储过程-pgAdmin