У меня есть таблица в реагенте, и я установил col-span заголовка таблицы = 2.
(defn my-table []
[:table.table.table-striped.table-bordered
[:thead
[:tr
[:th "Col1"]
[:th "Col2"]
(doall (for [id @ids]
^{:key id}
[:th {:data-id (id :id)
:col-span "2"}
(str (get id :name))]))]]
[:tbody
(doall (for [i (range (count @table-items))]
(let [table-item (cursor table-items [i])]
^{:key i}
[item-row table-item])))]])
Но в каждой строке, см. item-row
ниже, я перебираю структуру данных, чтобы получить данные для разделенного столбца в этой строке, и у меня возникают проблемы. Я могу заставить данные отображаться правильно, если
[:div [:td [:span (:id id)]]
[:td [:span (:name id)]]]
который, как я знаю, является неправильным/недействительным html.
(defn item-row [item]
(fn []
[:tr
[:td [:span (:key1 @item)]]
[:td [:span (:key2 @item)]]
(doall (for [id @ids]
^{:key id}
[[:td [:span (:x id)]]
[:td [:span (:y id)]]]))]))
Кто-нибудь знает, как отобразить два элемента :td
в цикле for? Моя идея заключалась в том, чтобы обернуть два элемента :td
в вектор и позволить реагенту обрабатывать рендеринг разделенных столбцов.
(doall (for [id @ids]
^{:key id}
[[:td [:span (:x id)]]
[:td [:span (:y id)]]])
Я также получаю следующую ошибку: core.cljs:4793 Uncaught Error: No item [:td "."] in vector of length 2
at Object.cljs$core$vector_index_out_of_bounds [as
vector_index_out_of_bounds]
что коррелирует с [:td [:span (:y id)]]