vuejs的一些疑问

<!DOCTYPE html>

<html>
<head>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <script src="~/js/adaptive-version2.js"></script>
    <link href="~/css/main.css" rel="stylesheet" />
    <link href="~/layui/layer_mobile/need/layer.css" rel="stylesheet" />
    <script>

        window['adaptive'].desinWidth = 750;
        window['adaptive'].baseFont = 10;
        window['adaptive'].init();

    </script>
    <title></title>
    <style type="text/css">
        .click_view {
            cursor: pointer;
        }

        .slide_img {
            left: -8rem;
        }

        [v-cloak] {
            display: none;
        }
    </style>
</head>

<body class="g_bg">
    <!--搜索栏-->
    <div class="search_1">
        <img src="/images/huajieyiyao/s02.png" alt="">
    </div>
    <div class="hide_c">
        <div class="animate_c">
            <input class="ipt_se_1" type="text" placeholder="请输入搜索项" id="name">
            <div class="timer_1">
                <input type="text" placeholder="开始日期" id="start" readonly="readonly">
                <div class="line_1"></div>
                <input type="text" placeholder="结束日期" id="end" readonly="readonly">
            </div>
            <input class="btn_s" type="button" value="搜 索" id="sousuo">

            <div class="line_2"></div>
        </div>
        <div class="black_bg"></div>
    </div>
    <!--搜索栏结束-->    

    <div class="color_box2">
        <div class="page_title">
            <img src="/images/z08.png" alt="">
            <p>公共池</p>
        </div>
        <img class="bg_023" src="/images/bg_w.png" alt="">
    </div>

    <div class="list_box2">
        <div class="scroll_box2" id="itemlist">
            <div class="list_clm2" v-for="parentitem in list">
                <div class="txt_p_box">
                    <p>来账公司:{{parentitem.cnterAcctName1}}</p>
                    <p>来账账号:{{parentitem.counterAcctNo1}}</p>
                    <p>来账时间:{{parentitem.ordrDtTm}}  {{parentitem.tranTime2}}</p>
                    <p>来账金额:{{parentitem.tranAmt}}元</p>
                    <p>开户行:{{parentitem.cnterBankName}}</p>
                    <p>交易流水号:{{parentitem.tranSeqNo3}}</p>
                    <p>备注:{{parentitem.remark}}</p>
                </div>
                <div class="click_view" :data-id='parentitem.id'>
                    <img class="vimg" src="/images/z10.png" alt="" data-first="0">
                    <p class="txt_1">点击添加关注</p>
                    <img class="slide_img" src="/images/line_1.png" alt="">
                </div>
            </div>

        </div>

    </div>
    <div class="bottom_fix">
        <img class="logo" src="/images/logo.png" alt="">
        <img class="bt_line" src="/images/line_1.png" alt="">
    </div>
    <script src="~/js/jquery-1.7.2.min.js"></script>
    <script src="~/js/jquery.cookie.js"></script>
    <script src="~/js/vue.min.js"></script>
    <script src="~/layui/layer_mobile/layer.js"></script>
    <script src="~/layui/laydate/laydate.js"></script>
    <script>
        var PageNumber = 1;


        //执行一个laydate实例
        laydate.render({
            elem: '#start' //指定元素
        });


        //执行一个laydate实例
        laydate.render({
            elem: '#end' //指定元素
        });

        //数据转换
        function GetObj(obj, fn) {
            if (obj.success) {
                var data = JSON.parse(obj.data);
                console.log(data);
                if (data.statusCode == "0000") {
                    var retMsg = data.retMsg;
                    console.log(retMsg);
                    fn(retMsg);
                }
            }
        }
        //数据转换

        var LoadGuiShuList = [];///归属信息列表
        ///初始化  vue
        
        var vm=new Vue({
                el: '#itemlist',
                data: {
                    list: LoadGuiShuList
                }
            });
        
        
        ///初始化  vue


        $(function () {
            /**屏幕高度**/
            function autoHeight() {
                var h = $(window).height();
                $(".scroll_box2").css('height', h - 180);
            }

            autoHeight();
            $(window).resize(autoHeight);

            $(".slide_img").css("left", "-8rem");

            $("#itemlist").on("click", ".click_view", function () {
                var id = $(this).attr("data-id");
                if ($(this).children(".vimg").attr("data-first") == "0") {
                    $(this).children(".vimg").attr("src", "/images/huajieyiyao/z09.png")
                    $(this).children(".txt_1").html("点击取消关注")
                    $(this).children(".slide_img").stop(false.true).animate({ left: "0rem" }, 500)
                    $(this).children(".vimg").attr("data-first", "1");
                    //添加关注操作
                    AddCanelGuanZhu(id, "mark")
                } else {
                    $(this).children(".vimg").attr("src", "/images/huajieyiyao/z10.png")
                    $(this).children(".txt_1").html("点击添加关注")
                    $(this).children(".slide_img").stop(false.true).animate({ left: "-8rem" }, 500)
                    $(this).children(".vimg").attr("data-first", "0");
                    //取消关注操作
                    AddCanelGuanZhu(id, "over");
                }
            });

            ///获取公共池信息
            function GetPubPool() {
                $.post("/data/PubPool", {
                    cnterAcctName1: $("#name").val(),
                    startDate: $("#start").val().replace(/[-]/g, ""),
                    endDate: $("#end").val().replace(/[-]/g, ""),
                    token: $.cookie("huajie"),
                    pageNum: PageNumber,
                    pageSize: 10
                }, function (res) {
                    GetObj(res, function (obj) {
                        obj = obj.replace(/\"id\":(\d+)/, '"id": "$1"');//给id转换为字符串类型
                        console.log('转换前', obj);
                        obj = JSON.parse(obj);
                        if (obj.msg == "密钥解析失败,请重新登录") {
                            console.log("登录信息失效");
                            //询问框
                            layer.open({
                                content: '登录信息失效,是否重新登录?'
                                , btn: ['确定', '取消']
                                , yes: function (index) {
                                    layer.close(index);
                                    window.location.href = '/HuaJieYiYao/Index';
                                }
                            });
                            return false;
                        }

                        if (obj.msg =="未查询到相关数据") {
                            //信息框
                            layer.open({
                                content: obj.msg
                                , btn: '我知道了'
                            });
                            return false;
                        }


                        console.log('转换后', obj);
                        for (var i = 0; i < obj.result.length; i++) {
                            //LoadGuiShuList.push(obj.result[i]);//追加一个元素
                            GetDetail(obj.result[i].id);
                            console.log(vm);
                            vm.list.push(obj.result[i]);
                        }
                    });
                })
            }
            ///获取公共池信息
            GetPubPool();
            ///获取公共池信息

            //获取详细信息
            function GetDetail(str) {
                $.post("/HuaJieYiYao/DataDetails", {
                    token: $.cookie("huajie"),
                    id: str
                }, function (res) {
                    GetObj(res, function (obj) {
                        console.log(obj);

                    });

                });
            }
            //获取详细信息


            ///添加或者取消关注
            function AddCanelGuanZhu(strid, types) {
                $.post("/data/FocusData", {
                    ids: strid,
                    type: types,
                    token: $.cookie("huajie")
                }, function (res) {
                    GetObj(res, function (obj) {
                        obj = JSON.parse(obj);
                        console.log(obj);
                        if (obj.code == 200) {
                            console.log("成功");
                        }
                        if (obj.msg == "密钥解析失败,请重新登录") {
                            console.log("token失效");
                        }
                    });
                })
            }
            ///添加或者取消关注

            //监听上下滑动
            $(window).scroll(function () {
                var scrollTop = $(this).scrollTop();
                var scrollHeight = $(document).height();
                var windowHeight = $(this).height();
                if (scrollTop + windowHeight == scrollHeight) {
                    GetPubPool();
                }
            });
            //监听上下滑动
            /**侧边栏**/
            $(".black_bg").hide()

            $(".search_1").click(function () {
                $(".black_bg").fadeIn();
                $(".animate_c").animate({ right: "0rem" }, 500)
            })
            $(".black_bg").click(function () {
                $(".animate_c").animate({ right: "-5rem" }, 500)
                $(".black_bg").fadeOut("slowly");
            })

            /*点击搜索按钮*/
            $("#sousuo").click(function () {
                $(".black_bg").click();
                PageNumber = 1;
                Vue.set(vm, "list", []);
                LoadGuiShuList = [];               
                GetPubPool();
                console.log(vm);
            });
            /*点击搜索按钮*/


        });
    </script>
</body>
</html>

上面是一段代码   当页面初次加载时去服务端请求json数据   随着数据加载   对  变量 LoadGuiShuList   追加数据  页面也随之渲染

这里出现的一问题是  当我需要重新加载数据时   需要对  vue data 的list 清空  在网上找了很多  最终使用到了   Vue.set(a,b,c)  这个函数  可以对  vue data 里的值进行修改。

很疑问的一句代码 

 for (var i = 0; i < obj.result.length; i++) {
                            //LoadGuiShuList.push(obj.result[i]);//追加一个元素

                            console.log(vm);
                            vm.list.push(obj.result[i]);//重点重点重点重点重点重点
                        }

在重点标记处  对此追加数据   也可以使页面渲染 本人不是职业前端  很想知道一下  上面这几行代码的渲染方式对吗,我这里页面确实是渲染出来了,请各位大神指点一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值