首页 > 其他分享 >因为aid分配不均而出现的“功能失效”BUG

因为aid分配不均而出现的“功能失效”BUG

时间:2023-01-18 22:11:06浏览次数:44  
标签:tr address list replace tag 失效 aid BUG

问题篇:修改了一个因为"后端给前端提供的aid,需要分配给多个'需要aid的方法'使用,而出现的aid分配不均,只能给第一个所接收,而后面两个不能出现效果的BUG"{解决方法:给多个'需要aid的方法'不同的id值,再把循环查找后端数据的aid,都个分配给他们每个id,使他们每个都有aid,就解决了,具体看代码解析}(已经解决bug)

问题图片:

原来的BUG代码:

/**展示用户收货地址数据列表*/
  function showAddressList() {
        $("#address-list").empty();
        $.ajax({
            url: "/addresses",
            type: "get",
            //data:
            dataType: "JSON",
            success: function (json) {
                if (json.state == 200) {
                    var list = json.data;
                    console.log(list);//调试用
                    for (var i = 0; i < list.length; i++) {
                        //先写一个var tr = ''; 然后去上面的地址展示中找一个tr标签复制粘贴到单引号里面,再删去多余的制表符
                        var tr = '<tr>\n' +
                            '<td>#{tag}</td>\n' +
                            '<td>#{name}</td>\n' +
                            '<td>#{address}</td>\n' +
                            '<td>#{phone}</td>\n' +
                            '<td><a onclick="updateAddress(#{aid})" class="btn btn-xs btn-info"><span class="fa fa-edit"></span> 修改</a></td>\n' +
                            '<td><a onclick="deleteAddressByAid(#{aid})" class="btn btn-xs add-del btn-info"><span class="fa fa-trash-o"></span> 删除</a></td>\n' +
                            '<td><a onclick="setDefault(#{aid})" class="btn btn-xs add-def btn-default">设为默认</a></td>\n' +
                            '</tr>';
                        //href="updateAddress.html" --跳转页面
                        //下面用正则表达式更改字符串,上面的#{tag}#{name}等等只
                        //是占位符,没有任何意义,我也可以把#{tag}写成任何想写的东西
                        //replace的第一个参数/占位符/g可以,"占位符"也可以
                        tr = tr.replace(/#{tag}/g, list[i].tag);
                        tr = tr.replace(/#{name}/g, list[i].name);
                        tr = tr.replace("#{address}", list[i].address);
                        tr = tr.replace("#{phone}", list[i].phone);
                        tr = tr.replace("#{aid}", list[i].aid);  //给这个表单,的"修改、删除、设置默认"赋值aid
                
                        $("#address-list").append(tr);
                    }

                    //用hide方法将第一个收货地址的"设为默认"元素隐藏,.add-def:eq(0)表
                    //现示第一个class为add-def的标签,这样就可以保证隐藏的是第一个收货地址
                    $(".add-def:eq(0)").hide();
                } else {
                    <!--这个其实永远不会执行,因为没有编写
                    异常,控制层返回的状态码永远是OK-->
                    alert("用户收货地址数据加载失败")
                }
            }
        });
    }

解决思路:

  • 问题: tr = tr.replace("#{aid}", list[i].aid); // 一个aid不能给这个表单,的"修改、删除、设置默认"(三个按键)都赋值aid

  • 所以解决方法很简单,分别给"修改、删除、设置默认"都赋值一个aid,就解决了

  • 他们都需要aid,但是又不能只给一个aid,就都赋值,就解决问题啦

修改后的代码块:

/**展示用户收货地址数据列表*/
    function showAddressList() {
        $("#address-list").empty();
        $.ajax({
            url: "/addresses",
            type: "get",
            //data:
            dataType: "JSON",
            success: function (json) {
                if (json.state == 200) {
                    var list = json.data;
                    console.log(list);//调试用
                    for (var i = 0; i < list.length; i++) {
                        //先写一个var tr = ''; 然后去上面的地址展示中找一个tr标签复制粘贴到单引号里面,再删去多余的制表符
                        var tr = '<tr>\n' +
                            '<td>#{tag}</td>\n' +
                            '<td>#{name}</td>\n' +
                            '<td>#{address}</td>\n' +
                            '<td>#{phone}</td>\n' +
                            '<td><a onclick="updateAddress(#{aid_updateAddress})" class="btn btn-xs btn-info"><span class="fa fa-edit"></span> 修改</a></td>\n' +
                            '<td><a onclick="deleteAddressByAid(#{aid_deleteAddressByAid})" class="btn btn-xs add-del btn-info"><span class="fa fa-trash-o"></span> 删除</a></td>\n' +
                            '<td><a onclick="setDefault(#{aid_setDefault})" class="btn btn-xs add-def btn-default">设为默认</a></td>\n' +
                            '</tr>';
                        //href="updateAddress.html" --跳转页面
                        //下面用正则表达式更改字符串,上面的#{tag}#{name}等等只
                        //是占位符,没有任何意义,我也可以把#{tag}写成任何想写的东西
                        //replace的第一个参数/占位符/g可以,"占位符"也可以
                        tr = tr.replace(/#{tag}/g, list[i].tag);
                        tr = tr.replace(/#{name}/g, list[i].name);
                        tr = tr.replace("#{address}", list[i].address);
                        tr = tr.replace("#{phone}", list[i].phone);
                        tr = tr.replace("#{aid_updateAddress}", list[i].aid);  //给这个表单的 --"修改"按键-- 赋值aid
                        tr = tr.replace("#{aid_deleteAddressByAid}", list[i].aid);//给这个表单的 --"删除"按键-- 赋值aid
                        tr = tr.replace("#{aid_setDefault}", list[i].aid);   //给这个表单的 --"设置默认"按键-- 赋值aid

                        $("#address-list").append(tr);
                    }

                    //用hide方法将第一个收货地址的"设为默认"元素隐藏,.add-def:eq(0)表
                    //现示第一个class为add-def的标签,这样就可以保证隐藏的是第一个收货地址
                    $(".add-def:eq(0)").hide();
                } else {
                    <!--这个其实永远不会执行,因为没有编写
                    异常,控制层返回的状态码永远是OK-->
                    alert("用户收货地址数据加载失败")
                }
            }
        });
    }

标签:tr,address,list,replace,tag,失效,aid,BUG
From: https://www.cnblogs.com/chen-zhou1027/p/17060733.html

相关文章

  • bugku_EasyMath
    bugku_EasyMath题目描述简单的数学题fromCrypto.Util.numberimportgetPrime,bytes_to_longfromsecretimportflagp=getPrime(2048)q=getPrime(2048)x=......
  • 软件工程师修复 Bug 的三种境界 All In One
    软件工程师修复Bug的三种境界AllInOne软件工程师修复Bug的三重境界修复Bug三重境界......
  • VSCode debug gradle multiple-project 项目
    项目分层(阿里巴巴Java开发手册推荐)Gradle项目在APPproject的build.gradle中配置依赖其他project,执行task会输出到build文件夹默认debug的时候会创建launch.json{......
  • React-tree-biuld bug2.0
    import{Tree,Button,Card}from'antd';import{useEffect,useState}from'react';import'./App.css'constflattren=(treeData)=>{letres=[]con......
  • @Transactional注解失效问是
    1.Transactional注解修饰在非public方法上的时候,2.被自己类中的别的方法调用说明:被注解修饰的方法所在的类,该类中的方法直接互相调用就会失效,只有别的类掉这个类的......
  • 写的程序总是出 BUG,只好请佛祖前来镇楼啦
    前言自己之前写着玩的,在这做个备份,感觉不错的取走即可。南无阿弥陀佛佛祖镇楼,BUG消失,永不怠机。/////////////////////////////////////////////////////////////////......
  • antd日期范围选择组件bug
    昨天整理搬运项目的时候遇到一个bug页面搜索栏中的a-range-picker组件,选择show-time,但是在界面操作的时候,只能选择时间中的小时,无法选择分秒,有时候甚至秒数超过60,非常迷惑......
  • 来说说大田发现一个 BUG 过程(以接口测试为例)
    大家好啊,我是大田。哈哈,今天回到自己啦,分享下我发现BUG的具体过程是什么,四个步骤重现我的工作思路,希望对你有帮助~1、我会看接口返回的结果,正常我会检查一下数据库字段......
  • Standard ABAP Debugger 和 Classic ABAP Debugger 的实现差异
    这两种ABAP调试器,可以在SAPGUI里这个菜单的位置进行切换:StandardABAP调试器有时候又称为新调试器。新的ABAP调试器在一个同被调试的ABAP程序完全不同的Exter......
  • Jmeter学习:采样器--http 请求采样器/Websocket 采样器/dubug 采样器
    一、http请求采样器功能:通过该组件,我们可以进行Http采样 Basic常用参数已经在截图上。GET请求可将参数填写在Parameters中。参数:FollowRedirescts和Rediect......