Я хотел бы получить Om для работы с ScrollSpy.ScrollSpy с Om
В настоящее время я использую этот код:
(defn main-component
[data owner]
(om/component
(dom/div
#js {:className "col-sm-10 col-sm-offset-2 col-md-10 col-md-offset-2 main"}
(dom/div
#js {:className "main-panel"
:data-spy "scroll"
:data-target ".nav-sidebar"}
"..."))))
(defn sidebar-component
[data owner]
(om/component
(dom/div
#js {:className "container-fluid"}
(dom/div
#js {:className "row"}
(dom/div
#js {:className "col-sm-2 col-md-2 sidebar"}
(dom/div
#js {:className "nav-sidebar"}
(dom/ul
#js {:className "nav"}
(dom/li nil (dom/a #js {:href "#thing-1"} "Thing 1"))
(dom/li nil (dom/a #js {:href "#thing-2"} "Thing 2"))
(dom/li nil (dom/a #js {:href "#thing-3"} "Thing 3"))
)))))))
(defn app-component
"The top-level Om component."
[data owner]
(om/component
(om/build
(common/app-template
(om/build sidebar-component data)
(om/build main-component data))
data)))
В настоящее время, кажется, работает до тех пор, Ом/React.js повторно не делает DOM. После этого ScrollSpy перестает работать. Кажется, я знаю, почему. По Bootstrap ScrollSpy: «При использовании scrollspy в сочетании с добавлением или удалением элементов из DOM, вам нужно вызвать метод обновления как так:»
$('[data-spy="scroll"]').each(function() {
var $spy = $(this).scrollspy('refresh');
});
Что я должен делать? Я думаю, что хочу подключиться к Ом и сказать ему, чтобы вызвать ScrollSpy, как показано выше.