element ui中el-switch根据后端传递值进行默认显示

需求:修改一个行数据,弹出一个修改框,其中状态(启用/禁用)使用switch控制。后端返回的状态,分别是1和0,其中0表示禁用,1表示启用。

问题:当每次点击修改时,不管后端反馈的状态是1还是0,该行数据的状态开关始终处于关闭状态,。如下图所示。即显示状态与数据库中的数据不一致。

原因分析:这是由于Swich默认是boolean类型,而后台传值“1” “0”为字符串类型。

解决方法:书写时active-value="1" 和 inactive-value="0" 前面应加上冒号“:”。

           
            <!--修改前-->
            <el-form-item label="状态">

                <el-switch v-model="brandModify.status"
                           active-value="1"
                           inactive-value="0"
                ></el-switch>

            </el-form-item>
------------------------------------------------------
            <!--修改后-->
            <el-form-item label="状态">

                <el-switch v-model="brandModify.status"
                           :active-value="1"
                           :inactive-value="0"
                ></el-switch>

            </el-form-item>

  修改后效果:

 点击修改时,可以看到状态switch开关与当前状态 1 已经匹配。

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,针对你的问题,我们可以通过使用Vue.js的v-for指令来循环渲染生成不同的按钮。 首先,你需要在后端返回一个包含不同按钮数据的数组,例如: ```javascript buttons: [ { label: '按钮1', value: 'value1', action: 'handleClick1' }, { label: '按钮2', value: 'value2', action: 'handleClick2' }, { label: '按钮3', value: 'value3', action: 'handleClick3' } ] ``` 然后,在Vue组件,你可以这样使用v-for指令来循环渲染这些按钮: ```html <template> <div> <button v-for="button in buttons" :key="button.value" @click="handleClick(button)">{{ button.label }}</button> </div> </template> ``` 在这里,我们使用v-for指令循环渲染按钮,并且使用:key指令来指定每个按钮的唯一标识符,这里我们使用按钮的value属性作为唯一标识符。 同时,我们使用@click指令来绑定按钮的点击事件,并且将整个按钮对象作为参数传入handleClick方法。 最后,在Vue组件,你可以定义handleClick方法来处理不同按钮的点击事件: ```javascript <script> export default { data() { return { buttons: [] }; }, created() { // 在组件创建时,调用后端接口获取按钮数据 this.fetchButtons(); }, methods: { fetchButtons() { // 调用后端接口获取按钮数据 // 在获取到数据后,将数据赋给组件的buttons属性 this.buttons = response.data.buttons; }, handleClick(button) { switch(button.action) { case 'handleClick1': this.handleClick1(button.value); break; case 'handleClick2': this.handleClick2(button.value); break; case 'handleClick3': this.handleClick3(button.value); break; default: break; } }, handleClick1(value) { // 处理按钮1的点击事件 }, handleClick2(value) { // 处理按钮2的点击事件 }, handleClick3(value) { // 处理按钮3的点击事件 } } }; </script> ``` 在这里,我们定义了handleClick方法来根据按钮的action属性来判断需要调用哪个具体的处理方法来处理按钮的点击事件。 同时,我们也定义了三个具体的处理方法,分别处理不同按钮的点击事件,并且传入了每个按钮对应的value属性作为参数,以便处理方法能够根据不同按钮传入的进行不同的处理。 在组件创建时,我们调用后端接口获取按钮数据,并且将数据赋给组件的buttons属性,然后通过v-for指令循环渲染按钮,实现根据后端返回数据动态生成不同的按钮。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值