【发布时间】:2017-02-04 05:29:58
【问题描述】:
我想从 FFI 函数定义中返回对 Javascript 对象的引用,以便以后能够操作该对象:
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)"
但底层的 Javascript 窗口似乎无法公开访问。是否有其他方法可以创建对 Javascript 对象的引用?
【问题讨论】:
-
这对我来说很好。在我看来,您已经回答了自己的问题?
-
是的,但也许这个答案对其他人也有帮助。感谢您的三便士-gui 顺便说一句,设计精良且非常有用!
-
当然。 :-) 但是你能把答案剪下来贴在下面吗?这会让其他人以后更容易理解。谢谢你,我很高兴你喜欢它。 :-)
-
似乎没有选项可以回答我自己的问题,我可以添加 cmets。你能补充一下答案吗?谢谢!
-
抱歉,算了,我没看到底部的蓝色大按钮;)