TODO アプリをバニラ JavaScript から ClojureScript に移植しています。この無害に見える関数を除いて、これまでのところとても良いです:
;; loop the @todo-list, write each todo at the end of the <body>
(defn show-todos []
(js/alert "in show-todos")
(map
#(appendChild (.-body js/document) (.createTextNode js/document (str %)))
@todo-list))
別の関数が実行され、show-todos が呼び出され、ブラウザーに警告メッセージが表示されますが、ドキュメントは何も更新されません。ただし、別のターミナルを開いてブラウザに接続された repl を起動すると、次のようになります。
$ lein trampoline cljsbuild repl-listen
Running ClojureScript REPL, listening on port 9000.
"Type: " :cljs/quit " to quit"
ClojureScript:cljs.user> (in-ns 'todo-cljs.todos)
ClojureScript:todo-cljs.todos> (show-todos)
(#<[object Text]>)
これにより、実際に TODO リストの内容が画面に追加されます。lein-cljsbuild プラグイン バージョン 0.3.0 を使用しています。空白の最適化のみ。
任意のヒント?