2016-07-11 144 views
0

ng-ifの4つの条件をブール条件とする必要があります。それらのいずれかが真である場合、私はいくつかのdivを表示する必要があります。ng-ifの複数の条件を確認する

どうすればいいですか?一般に

<div ng-if="ctrl.survivor || ctrl.doctor || ctrl.patient || ctrl.beneficiary"> 
<div ng-bind-html=" {{ myContent }}"> 
</div> 
</div> 
+2

が、簡単な方法はありませんこの論理を表現する。関数は本質的に同じに見えます。 – Claies

+0

@Claies:ありがとう、これは正しい構文ですか?私はANgularの新人です。私はまだこのコードをテストしています。今すぐやります。しかし、これはすべて見栄えですか?そして、はい、私はコントローラーでこれのためのセットアップを取得します – Learner

+0

@Claiesと同意します、また、上記の4つ以外のユーザーロールの他のタイプは何ですか?あなたは、おそらくNot ifという考えを使って、潜在的に単純にロジックにすることができます。 –

答えて

1

、角度表現の内部複雑なロジックは、コードのにおいである:

一般に

をテストするために

  • ハードをデバッグする
  • ハードを読み取るためのハード
    • 私はブール論理を避けようとするか、あるいは私が書いたり書いたレビューの複雑さを表す何かを避けようとしています。その代わりに、ロジックをコントローラメソッドに抽出し、コントローラメソッドを直接呼び出すことをお勧めします。これにより、素敵な単位テストを書くこともできます。コントローラでは

      <div ng-if="ctrl.isApplicable()"> 
          <div ng-bind-html=" {{ myContent }}"></div> 
      </div> 
      

      ::私が推薦する最終的なコードは次のようになりますが、コントローラで関数内のロジックを置くことができ

      class Ctrl { 
          ...  
          isApplicable() { 
          return survivor || ctrl.doctor || ctrl.patient || ctrl.beneficiary; 
          } 
          ... 
      }