把json數據的id加到接口裏id的後面

把json數據的id加到接口裏id的後面

遇到的問題

在地圖上點擊一個marker,在彈出的信息裏點擊左邊按鈕傳id1,點擊右邊按鈕傳id2,其中id1在接口中,id2在json中,怎麼把id2綁在id1的後面呢,用~隔開。

思路

先獲取接口的url,得到接口的信息列表,定義一個變量,用ajax的get請求去訪問json,把返回來的數據給這個變量,然後for循環第一個接口的數據 正常處理數據,再for循環json的數據,把第一個接口的數據和json的數據都進行處理,即把id1~id2作連接。創建marker,marker中的經緯度用的是接口裏的。(除了json裏的id與接口的id作連接以外,其他數據都是用接口的。)那同時信息接口也要接受帶有這樣的參數。點擊maker時,在彈出的彈框中,做判斷如果有兩個id 第一行顯示id1,第二行顯示id2,如果沒有倆個id,那麼兩行都顯示id1,同時設置左邊按鈕data-id=id1 右邊data-id=id2。

注意事項

1.先加載接口的數據,因爲你先用的接口數據。
2.要做~的判斷,我是用的length來判斷,也可以用indexof‘("")>-1來做,但是它返回的結果不是布爾類型,而是位置信息。
3.傳一個id值的只顯示左邊按鈕,傳兩個的兩邊都顯示。

代碼片段展示

     getPortList: function () {
            var url = this.config.listUrl;
            this.ajax.get(url, null, true, this, function (res) {
                if (res.state !== 1) {
                    console.error(res.msg.error);
                } else {
                    var listinfo = res.msg.portlist;
                    var ports=null;
          var url1 = "data/portList.json";
          this.ajax.get(url1, null, true, this, function (res) {
            ports=res;
                    for (var i = 0, len = listinfo.length; i < len; i++) {
                        var port = this.convertPortObj(listinfo[i]);//顯示所有
                        for(var j=0,lens=ports.PortList.length;j<lens;j++){
                            if(ports.PortList[j].name==listinfo[i].portNameEn){
                                 port = this.convertRelationPortObj(listinfo[i],ports.PortList[j]);//顯示與json數據
                        
                        
                            }
                        }
                        var marker = this.createPortMarker(port, true);
                        if (this.ictmap.map.getZoom() < this.config.showLevel) {
                            marker.setOpacity(0);
                            marker.off("click", this.portClickEvt, this);
                        }
                        this.portLayerGroup.addLayer(marker);
                    }
                },function(error){
                    console.error("獲取!");
                });
                }
            }, function (error) {
                console.error("獲取!");
            });
        },
          convertRelationPortObj: function (obj,obj1) {
            var oneobj = {};
            oneobj.id = obj.id+'~'+obj1.id;//id1和id2的連接
            oneobj.cc = obj.cc;
            oneobj.lon = obj.lon / 600000;
            oneobj.lat = obj.lat / 600000;
            oneobj.name = obj.name;
            return oneobj;
        },




//顯示彈框中做的判斷
          if(portobj.origId.length>7){
              
                var infoid=portobj.origId.split("~")[0];
                var hideid=portobj.origId.split("~")[1];
            }else{
                var infoid=portobj.id;
                var hideid=portobj.id;
            }
          
            html.push('<tr><td>' + p1 + '</td><td>' + infoid + '</td></tr>');
            html.push('<tr style="display:none;"><td></td><td></td></tr>');
            html.push('<tr style="display:none;"><td>' + p1 + '</td><td>' + hideid + '</td></tr>')
            html.push('<button type="button" class="portdetail" data-id="'+ infoid +'">'+ p13 +'</button>')//左邊按鈕           
            html.push('<button type="button" class="relation" data-id="'+ hideid +'">'+ p14 +'</button>');//右邊按鈕
             
 //傳參數進去
             //點擊左邊按鈕事件傳參
              var portid = $(this).data("id");
                
                window.open('resultpage/detail.html?param=' + portid;
                //點擊右邊按鈕事件傳參
                 var portid = $(this).data("id");
                
                window.open('resultpage/relation.html?param=' + portid;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章