Om では、メイン アプリ アトムの値に基づいて要素にクラスを追加する方法はありますか?
たとえば、次の要素を考えてみましょう。
(defn some-component [app owner]
(reify
om/IRender
(render
[_]
(html
[:div {:class (when (:some-key app) "awesomeclass")} "Some text!"]))))
true と falseの間で何らかの方法で値を切り替える: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"]]]