Кажется, что это должно быть просто, и я думал, что это было ... пока я не переключился с запуска Figwheel на запуск файла JAR, и он перестал работать.
Проблема может быть сведена к довольно простому примеру:
Создайте новое приложение «buttontest», используя шаблон «Реагент» Leiningen.
Добавьте скрипт в core.cljs прямо под объявлением "ns":
(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». Перейдите на сайт. Кнопка «Скажи привет» вызовет предупреждение при нажатии.
Вернувшись в оболочку, выполните «lein uberjar» и запустите получившийся файл .JAR, используя Java. Перейдите на сайт. Кнопка «Скажи привет» ничего не будет делать при нажатии. Консоль показывает «Тест кнопки не определен».
Я пробовал разные вещи (повозиться с / удалить квалификацию пространства имен в атрибуте "onclick", вручную включая другие файлы .JS и т. Д.) Без удачи. Я чувствую, что упускаю что-то очевидное.
Есть идеи? Спасибо.