1
Je voudrais renvoyer une référence à un objet Javascript à partir d'une définition de la fonction de FFI afin de pouvoir manipuler l'objet plus tard:Comment retourner JSObject à partir de JSFunction?
import Data.Aeson
import Foreign.JavaScript (JSObject, NewJSObject, unsafeCreateJSObject)
import Foreign.RemotePtr (RemotePtr)
import Graphics.UI.Threepenny.Core hiding (text)
mkJSObject :: JSFunction NewJSObject -> UI JSObject
mkJSObject f = askWindow >>= liftIO . flip unsafeCreateJSObject f
polyLine :: [[Double]] -> Value -> UI JSObject
polyLine points = mkJSObject . f points
where
f :: [[Double]] -> Value -> JSFunction NewJSObject
f = ffi "L.polyline(%1, %2).addTo(map)"
Mais le Javascript fenêtre sous-jacente ne semble pas être publiquement accessible. Existe-t-il un autre moyen de créer des références aux objets Javascript?
Cela semble bien pour moi. Il me semble que vous avez répondu à votre propre question? –
Oui, mais peut-être que la réponse est utile pour les autres aussi. Merci pour threepenny-gui btw, bien conçu et extrêmement utile! – kaoskorobase
Bien sûr. :-) Mais pourriez-vous couper la réponse et le coller ci-dessous? Cela faciliterait la compréhension des autres plus tard. Et merci, je suis content que tu aimes ça. :-) –