单张弹出窗口与Clojurescript

时间:2016-05-09 05:38:23

标签: leaflet clojurescript

我很确定这是一个概念错误,但我不确定我拨打错误电话的位置。

在传单教程之后,我尝试在地图上创建弹出窗口。根据教程,这是一个简单的操作

var popup = L.popup();

function onMapClick(e) {
    popup
        .setLatLng(e.latlng)
        .setContent("You clicked the map at " + e.latlng.toString())
        .openOn(mymap);
}

mymap.on('click', onMapClick);

然而,当我将其翻译成clojurescript时,我收到以下错误:

  

未捕获的TypeError:t.openPopup不是函数

我100%肯定我错误地调用了javascript。我正在做以下事情:

(defn onMapClick [e]
  (let [popup (js/L.Popup.)]
    (-> popup
        (.setLatLng (.-latlng e))
        (.setContent (str "You clicked the map at " (.-latlng e)))
        (.openOn map))))

然后我称之为:

(.on map "click" onMapClick)

正确定义map。 (我说得对,因为我能够绘制多边形并使用.bindPopup创建与这些多边形绑定的弹出窗口)

1 个答案:

答案 0 :(得分:0)

我一直在考虑根本不依赖返回值。只是依赖于呼叫序列:

(defn onMapClick [e]
  (let [popup (js/L.Popup.)]
    (.setLatLng popup (.-latlng e))
    (.setContent popup (str "You clicked the map at " (.-latlng e)))
    (.openOn popup map)))

如果文档说这些js setter函数返回弹出窗口,那么这不会有太大的答案!

您应该能够将问题隔离到一个函数调用??