2

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"]]]
4

2 に答える 2

0

:classNameの代わりにキーワードを使用する必要があり:classます。

于 2015-01-15T22:17:20.467 に答える