似乎这应该很简单,而且我也以为是...直到我从运行Figwheel转换为运行JAR文件时它停止工作。
问题可以简化为一个相当简单的例子:
使用Leiningen "Reagent"模板创建一个名为"buttontest"的新应用程序。
在"ns"声明后面的core.cljs中添加一些脚本:
在handler.clj中添加一个静态按钮:
请执行 "lein cljsbuild once" 和 "lein figwheel" 命令,并浏览该网站。点击“Say Hello”按钮会触发警报。
回到Shell界面,请执行 "lein uberjar" 命令并使用Java运行生成的.jar文件。浏览该网站。点击“Say Hello”按钮将不起作用。控制台显示“buttontest未定义”。
我已经尝试了各种方法(调整/删除“onclick”属性中的名称空间限定符,手动包含其他.JS文件等),但没有成功。我觉得我缺少一些明显的东西。
有任何想法吗?谢谢。
问题可以简化为一个相当简单的例子:
使用Leiningen "Reagent"模板创建一个名为"buttontest"的新应用程序。
在"ns"声明后面的core.cljs中添加一些脚本:
(defn greet [] (js/alert "Hi!"))
在handler.clj中添加一个静态按钮:
(defn loading-page [] (html5 (head)
[:body {:class "body-container"} mount-target
;v v v INSERTED THIS
[:button {:onclick "buttontest.core.greet()"} "Say Hello"]
;^ ^ ^
(include-js "/js/app.js")]))
请执行 "lein cljsbuild once" 和 "lein figwheel" 命令,并浏览该网站。点击“Say Hello”按钮会触发警报。
回到Shell界面,请执行 "lein uberjar" 命令并使用Java运行生成的.jar文件。浏览该网站。点击“Say Hello”按钮将不起作用。控制台显示“buttontest未定义”。
我已经尝试了各种方法(调整/删除“onclick”属性中的名称空间限定符,手动包含其他.JS文件等),但没有成功。我觉得我缺少一些明显的东西。
有任何想法吗?谢谢。