Я пытаюсь выучить Ом и наткнулся на то, чего не понимаю. Я бы ожидал этот код
(defn search-page-view [app owner]
(reify
om/IRender
(render [_]
(dom/div #js {:id "search-block"}
"Test")
(dom/div #js {:id "results-block"}
"Test2"))))
(om/root
search-page-view app-state
{:target (. js/document (getElementById "app"))})
чтобы получить этот html:
<div id="app>
<div id="search-block">
Test
</div>
<div id="results-block">
Test2
</div>
</div>
Однако это не так! Первый div
, содержащий тест, не отображается. Что я неправильно понимаю?
Отредактируйте решение (указано FakeRainBrigand):
Изменение кода на
(defn search-page-view [app owner]
(reify
om/IRender
(render [_]
(dom/div nil
(dom/div #js {:id "search-block"}
"Test")
(dom/div #js {:id "results-block"}
"Test2")))))
приводит к ожидаемому HTML.
render
всегда возвращает один элемент в своем корне, содержащий другие элементы, которые вы хотите. - person Mike Driver   schedule 27.06.2014