在 Om 中,有没有办法根据主应用程序原子中的某个值向元素添加类?
以以下元素为例:
(defn some-component [app owner]
(reify
om/IRender
(render
[_]
(html
[:div {:class (when (:some-key app) "awesomeclass")} "Some text!"]))))
如果我以某种方式在真假之间切换值:some-key
,则不会添加或删除该类。on page load的值:some-key
决定是否添加该类。
我正在使用这个想法根据我的应用程序状态hide
中的键值有条件地显示/隐藏(使用 Twitter Bootstrap 的类)菜单选项::access
[:ul.dropdown-menu {:role "menu"}
[:li {:class (when (:access app) "hide")} [:a.pointer {:on-click #(om/update! app :view :login)} "Login"]]
[:li {:class (when (:access app) "hide")} [:a.pointer {:on-click #(om/update! app :view :register)} "Register"]]
[:li {:class (when-not (:access app) "hide")} [:a.pointer {:on-click #(om/update! app :view :dashboard)} "Dashboard"]]
[:li {:class (when-not (:access app) "hide")} [:a.pointer {:on-click #(om/update! app :view :settings)} "Settings"]]
[:li [:a.pointer {:on-click #(om/update! app :view :about)} "About"]]]