Я не могу заставить reagent-forms
привязаться к атому. У меня есть привязка данных, работающая в реагенте в другом месте того же файла. И я могу установить и отобразить рассматриваемый атом, как ожидалось.
у меня есть
form-doc
, который возвращает[:div]
вектор с входными данными, которые я хотел бы связатьform-test
, который создает атом и вызываетbind-forms
secretary
маршрут, определенный для/#/test
Похоже, что ключ :field
в возвращаемом значении form-doc
игнорируется или не анализируется bind-fields.
В приведенном ниже тестовом примере средство выбора даты никогда не отображается, и входные данные выглядят не иначе, как [:input ]
.
Я неправильно использую reagent-forms
? Отсутствует зависимость от js?
HTML-код localhost.localdomain:3000/#/test
, обработанный браузером
<div data-reactid=".5.0.0">
<input id="foobar" data-reactid=".5.0.0.0">
<input id="test" data-reactid=".5.0.0.1">
<input id="nofieldtest" data-reactid=".5.0.0.2">
<div id="picker" data-reactid=".5.0.0.3"></div>
</div>
in core.cljs
(ns ...
( :require
...
[reagent.core :as reagent :refer [atom]]
[reagent.session :as session]
[secretary.core :as secretary :include-macros true]
[reagent-forms.core :as rf ]
[json-html.core :refer [edn->hiccup]]
))
(defn form-doc []
[:div
[:input {:field :text :id :foobar}]
[:input {:field :text :id :test}]
[:div {:field :datepicker
:id :picker
:date-format "yyyy/mm/dd"
:inline true}]
]
)
(defn form-test []
(let [doc (atom {:test "test"} ) ]
(fn []
[:div.new-visit-form
[rf/bind-fields form-doc doc ]
[:div (edn->hiccup @doc) ]
]))
)
(secretary/defroute "/test" []
(session/put! :current-page #'form-test))
в ринге / хендлере у меня есть
(include-js "//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js")
(include-js "//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js")
(include-css "//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css")
(include-css "//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css")
[:style (-> "reagent-forms.css" clojure.java.io/resource slurp) ]
насколько я могу судить, все необходимые js и css загружаются браузером
in project.clj
's :dependencies
[reagent "0.5.1"]
[reagent-utils "0.1.5"]
[reagent-forms "0.5.13"]