el-select的使用、根据后台返回的value显示对应label值

**

1.el-select的使用

**
模板:

<div class="group-brank">
  <label class="col-30"><span style='color:red'>*</span>难度系数</label>
  <template>
    <el-select v-model="difficulty" placeholder="请选择" style="border-left: 0">
      <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.label"
        :value="item.value">
      </el-option>
  </el-select>
</template>

数据:

   data(){
    return {
      options:[{
        value:'1',
        label:'入门'
      },{
        value:'2',
        label:'进阶'
      },{
        value:'3',
        label:'高级'
      }],
      difficulty:'',
    }
 }

效果:
在这里插入图片描述

2.根据后台返回的value显示对应label值

在这里我使用了filter过滤器:

filters:{
	levelMatch: function(val){
	        switch(val){
	          case 0: return '--'; break;
	          case 1: return '入门'; break;
	          case 2: return '进阶'; break;
	          case 3: return '高级'; break;
	        }
	      }
}
 <label>难度:<span>{{cour.difficulty | levelMatch}}</span></label>

因为我想再次修改,要求修改前可以看到曾经的值。我从处理后台获取的数据是这样子写的:

this.difficulty = data.difficulty;

结果看到的结果只有数字0、1、2、3,并没有进行levelMatch;
在这里插入图片描述
解决:
因为下拉的option里面的value定义成0,1,这是整型,不能定义成’0’,'1’字符串,如果要定义成字符串,后台需要返回的也是字符串,如果定义成字符串,后台返回的又是整型,需要使用toString转一下。
改成这样就可以了:

this.difficulty = data.difficulty.toString();
可以通过 `el-select` 的 `filterable` 属性和 `remote` 方法来实现根据后台返回的状态码显示对应的文字。 首先,设置 `el-select` 的 `filterable` 属性为 `true`,这样就可以在下拉列表中进行搜索。 其次,设置 `el-select` 的 `remote` 方法,当用户在搜索框中输入关键字时,会触发 `remote` 方法,并将搜索关键字作为参数传递给该方法。在 `remote` 方法中,可以使用 `axios` 或其他库将关键字发送到后台进行搜索,并根据返回的状态码显示对应的文字。 以下是一个示例代码: ```html <el-select v-model="value" filterable remote :remote-method="search"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> ``` ```javascript export default { data() { return { value: '', options: [] } }, methods: { search(query) { axios.get('/api/search', { params: { q: query } }).then(res => { if (res.data.code === 200) { this.options = res.data.data.map(item => ({ label: item.name, value: item.id })) } else { this.$message.error(res.data.message) } }).catch(err => { this.$message.error('网络错误,请稍后重试') }) } } } ``` 在上面的示例代码中,`search` 方法中使用 `axios` 发送搜索请求,并在请求功后根据返回的状态码判断是否显示错误信息。如果状态码为 `200`,则将搜索结果转换 `el-option` 组件需要的格式,并赋给 `options` 属性。如果状态码不为 `200`,则显示错误信息。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值