我很确定这是一个概念错误,但我不确定我拨打错误电话的位置。
在传单教程之后,我尝试在地图上创建弹出窗口。根据教程,这是一个简单的操作
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
创建与这些多边形绑定的弹出窗口)
答案 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函数返回弹出窗口,那么这不会有太大的答案!
您应该能够将问题隔离到一个函数调用??