1
我想引用来自FFI函数定义,以便返回一个Javascript对象,以能够操纵以后的对象:如何从JSFunction返回JSObject?
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对象引用的方法?
这看起来好像没什么问题。在我看来,你已经回答了你自己的问题? –
是的,但也许答案对其他人也有帮助。感谢三penny-gu btw,精心设计,非常有用! – kaoskorobase
当然。 :-)但是,你能否削减答案并将其粘贴在下面?这会让其他人更容易理解。谢谢,我很高兴你喜欢它。 :-) –