2016-09-06 95 views
0

有可能從javascript調用clojurescript功能,例如clojurescript功能:傳遞關鍵字參數從javascript

cljs.core.keyword("foobar") 

返回:foobar關鍵字,位置參數的工作如你所願。我試圖用:keywordize-keys的說法調用js-> clj,但到目前爲止我還沒有成功。我試過了:

cljs.core.js__GT_clj({'foo': 42}, {'keywordize-keys': true}) 

// and 

var k = cljs.core.keyword('keywordize-keys') 
cljs.core.js__GT_clj({'foo': 42}, {k: true}) 

但似乎沒有像我所希望的那樣工作。一般來說,當從js調用到cljs時,如何指定關鍵字參數?

+0

我通常走另一條路,使用clj-> JS但似乎成爲一個js-> clj,可能會訣竅:查看http://www.spacjer.com/blog/2014/09/12/clojurescript-javascript-interop/ – user3810626

回答

2

在cljs你這樣調用該函數:

(js->clj #js {"foo" 42} :keywordize-keys true) 

和相應的js代碼:

var k = cljs.core.keyword('keywordize-keys') 
cljs.core.js__GT_clj({'foo': 42}, k, true)