次の行を Cljs に変換しようとしていますが、
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });
対応するマップは何でしょうか。
{ enableHighAccuracy: true }
ClojureScriptで?enableHighAccuracy はシンボルですか?
次の行を Cljs に変換しようとしていますが、
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });
対応するマップは何でしょうか。
{ enableHighAccuracy: true }
ClojureScriptで?enableHighAccuracy はシンボルですか?
ライブラリ (あなたの場合は地理位置情報など) との相互運用を使用していて、JavaScript オブジェクトが必要な場合は、Clojure マップではなく、標準の JavaScript オブジェクトを渡す必要があります。
引数なしで関数を使用することにより、ClojureScript でこれらのいずれかを作成できjs-obj
ます。これにより、フィールドのない空の JavaScript が返されます。その後、関数を使用してフィールドを追加できますaset
。
したがって、コードは次のようになります。
(let [arg (js-obj)]
(aset arg "enableHighAccuracy" true)
(.watchPosition (.geolocation navigator) on-success on-error arg))
これが頻繁に行われる場合は、ClojureScript マップを任意のデフォルトを使用して JavaScript オブジェクトに変換するユーティリティ関数を簡単に作成できます。このような関数の例は、この要点にあります。https://gist.github.com/1658431