我正在将一个 TODO 应用程序从 vanilla 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]>)
这实际上确实在屏幕上添加了待办事项列表的内容。我正在使用 lein-cljsbuild 插件版本 0.3.0。并且只有空白优化。
有小费吗?