2015-04-08 47 views
1

我正在使用leaflet-sidebarv2插件爲cartodb/leaflet地圖創建邊欄。我遇到了問題,我a)無法讓選項工作 - 關閉按鈕,autoPan等)和b)無法使用setContent來動態設置數據。傳單邊欄不能在加載時打開

側欄按預期工作。問題是修改它似乎沒有效果。我還在setTimeoutsetContent行中收到錯誤「Uncaught TypeError:undefined不是函數」。

 cartodb.createLayer(map, { 
     user_name: {{user_name}}, 
     type: 'cartodb', 
     sublayers: [{ 
     sql: 'select * from {{table_name}}', 
     cartocss: '#layer', 
     interactivity: 'cartodb_id, name', 
     auto_bound: true 
     }] 
    }) 
    .addTo(map) 
    .done(function(layer) { 
     var barData; 

     barData = layer.createSubLayer({ 
     sql: 'select * from {{table_name}}', 
     cartocss: '#layer {marker-fill: #bababa; marker-opacity: 0.3; marker-width: 4px; }', 
     interactivity: 'name, location' 
     }); 

     //on click 
     barData.on('featureClick', function(e, pos, pixel, data) { 
     //log active data 
     console.log("Name: " + data.name + " @ " + data.location); 
     $('#map').css('cursor', 'pointer'); 
     }); 

     barData.setInteraction(true); 

     //hover pop-up 
     var infobox = new cdb.geo.ui.InfoBox({ 
     width: 100, 
     layer: layer, 
     template: '<p class="cartodb-infobox">{{name}}</p></br><p>{{location}}</p>', 
     position: 'top|right' // top, bottom, left and right are available 
     }); 

     $("body").append(infobox.render().el); 

     // leaflet-sidebar> closeButton not engaging 
     var sidebar = L.control.sidebar('sidebar', {closeButton: true}); 
     map.addControl(sidebar); 

     //content not showing up anywhere 
     sidebar.setContent('test <b>test</b> test'); 

    // sidebar still collapsed at reload 
    setTimeout(function() { 
     sidebar.show(); 
    }, 500); 

     }); 
    }  
    window.onload = main; 

任何關於我可能做錯的建議?我已經把所有正確的作品裝在腦袋裏。

回答

0

您似乎在使用錯誤的API。 setContent()方法和options散列是leaflet-sidebar庫API的一部分,但不是sidebar-v2

+0

啊。謝謝!那是有道理的。而且沒有v2的選項? – zingbot

+0

還沒有。因爲v2有兩種不同的API(傳單和jquery),所以它有點困難。 – TBieniek

相關問題