Вопрос

I want to use google maps api v3, and it needs me to instantiate google.maps.LatLng. Using clojurescript this is what I do:

(ns foocljs.core)

(LatLng. (.-maps js/google) 100 100)

I got an error undefined is not a function, this is the culprit:

new foocljs.core.LatLng(foocljs.core.google.maps, // ... another args

I'm guessing this is because the compiler think that LatLng. is clojure namespaced class. How to deal with this? Thanks.

Это было полезно?

Решение

Using js/a.b.c.d is a bad practice and is likely to break in future versions of the compiler (because it is not a clojure compatible version of interop from what I know)

The good way would be:

(def LatLng (.. js/google -maps -LatLng))

(LatLng. 100 100)

Другие советы

Silly me, I can just do this:

(js/google.maps.LatLng. 100 100)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top