Итак, я начинаю изучать clojurescript и просматриваю различные руководства по нему. Одна вещь, которую я не смог выяснить, - это указать идентификатор элемента в определенном html-файле, чтобы поместить мои разметки.
Допустим, у меня есть два html-файла, index.html и about.html. Я хочу нацелить свой код ниже на идентификатор элемента «приложение» на about.html, когда URL-адрес указывает на http://localhost:3449/about
код :
(om/root
(fn [data owner]
(reify
om/IRender
(render [_]
(dom/p nil (:text data)))))
app-state
{:target (. js/document (getElementById "app"))})
Что было бы лучшим подходом для этого? Или, может быть, ссылку, чтобы я мог посмотреть на это. Или, может быть, я что-то упускаю здесь, и, может быть, кто-то может просветить меня.
Также я пытался использовать этот https://github.com/gf3/secretary, но я не уверен если это лучший подход, поскольку URL-адреса должны иметь хэш-ключ (http://localhost:3449/#/about ) для запуска.
Обновление:
Итак, я использовал ответ ниже, и он сработал, но перед тем, как заставить его работать, я столкнулся с некоторой проблемой. В любом случае кто-то столкнулся с этим сообщением и использовал ответ ниже, но получил неопределенную проблему, проверьте мой окончательный код.
:cljsbuild
раздел вашего project.clj
:cljsbuild {:builds [{ :id "dev"
:source-paths ["src/clj" "src/cljs"]
:compiler {:output-to "resources/public/js/main.js"
:output-dir "resources/public/js/out/"
:optimizations :none
:pretty-print true}}]}
включил файлы js на about.html
<script src="js/out/goog/base.js" type="text/javascript"></script>
<script src="js/main.js" type="text/javascript"></script>
<script type="text/javascript">goog.require("om_async.about");</script>
<script type="text/javascript">om_async.about.init();</script>