私はそうしたい:ng-hide/ng-showでは複雑な表現が可能ですか?
ng-hide="!globals.isAdmin && mapping.is_default"
が、発現はfalse
に常に評価されます。
$scope
に特殊機能を定義したくありません。
私はそうしたい:ng-hide/ng-showでは複雑な表現が可能ですか?
ng-hide="!globals.isAdmin && mapping.is_default"
が、発現はfalse
に常に評価されます。
$scope
に特殊機能を定義したくありません。
任意のJavaScriptコードを実行する必要がある場合はコントローラメソッドを使用するか、trueまたはfalseを返すフィルタを定義できます。
私はちょうど(最初にやったことがあります)テストし、ng-show="!a && b"
のようなものが期待どおりに機能しました。
あなたは正しいです。問題は、isAdminフラグが 'boolean'ではなく 'string'タイプであることでした。 – Paul
ng-show
/ng-hide
は、boolean
値のみを受け入れます。
複雑な式の場合、複雑さを避けるためにコントローラとスコープを使用するとよいでしょう。
ここ
ng-show="User=='admin' || User=='teacher'"
(それは非常に複雑な式ではありません)1が動作する以下の要素は、二つの条件が真のリターン(OR演算)の際に任意のUIに表示されます。
このように、任意の式を使用できます。
これは、あまりにも多くの表現がない場合に機能します。
例:これはコントローラを使用するよりも、それ以上の式についてng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
。
私はあなたのステートメントが正しいとは思わない: 'あなたはあまりにも多くの表現を持っていない場合に動作します。 '私はそれがコントローラで行われるべきであることに同意します。 –
通常、ng-showとng-hideは条件式ではなくブーリアンとして設計されているため、表現は避けてください。条件付きロジックとブールロジックの両方が必要な場合は、ng-ifを最初のチェックとして使用して条件ロジックに入れ、次にng-showとng-hideを使用してブールロジックの追加チェックを追加することをお勧めします。
Howerver、 ng-showまたはng-hideに条件を使用したい場合、ここにいくつかの例のリンクがあります:Conditional Display using ng-if, ng-show, ng-hide, ng-include, ng-switch
これらの回答は私にとってはうまくいきませんでしたが、他の誰かが同じ問題を抱えている場合に備えて。
ng-show="column != 'vendorid' && column !='billingMonth'"
この構文は私には役に立ちますが、頻繁に使用します。 'false'と評価されている場合は、それらの値を再確認することができます。 「グローバル」オブジェクトおよび/または「マッピング」オブジェクトが「未定義」である可能性があります – derrylwc
答えの下に私の意見をお読みください。 – Paul
ちょうどヒント - 代わりにコントローラメソッドを使用する場合は、実際にデバッガで評価を進めることができます! –