2017-02-13 14 views
0

角度が新しいです。角度を使用して属性を置き換えます。

私の質問は、 'ng-if'が満たされている場合、 'ng-show'で 'ng-hide'を置き換えることはできますか?

受け取ったデータに基づいて特定のdivを非表示にして表示したいと考えています。それは 'true'または 'false'のいずれかで、 'false'の場合はdivを非表示にする必要があります。

+0

'NG-if' /' NG-show'自体に問題は何でしょう...?あなたの質問は不明だと思われる –

+0

...する必要はありません。要素を常に存在させ、値に基づいて表示または非表示にする場合はng-showまたはng-hideを使用し、値に基づいて要素を存在させたい場合はng-ifを使用します。 –

+0

それは私の問題がある場所です。 私は2組のデータを持っています。最初は両方を非表示にしたいが、検証の後にdivの2つのデータのどちらかを表示するようになる。 –

答えて

0

それはあなたが達成するために必要なものを私のため不明であるが、多分それは有用であろう:

HTMLで
function Controller (SomeService) { 
    var vm = this; 
    vm.firstVisible = false; 
    vm.secondVisible = false; 
    SomeService.getData().then(data) { 
     // firstValidation() function returns true if first way of display is matching 
     if (firstValidation(data)) { 
      vm.firstVisible = true; 
     } 

     // secondValidation() function returns true if second way of display is matching 
     if (secondValidation(data)) { 
      vm.secondVisible = true; 
     } 
    } 
} 

そして:

<div> 
    <div ng-if="vm.firstVisible"> 
     First way of displaying data 
    </div> 
    <div ng-if="vm.secondVisible"> 
     Second way of displaying data 
    </div> 
</div> 

(意図的に私は$onInitかを使用していません

1

boolean logic

で行うことができます
<div ng-show="cond1 && cond2"> 
    One data set 
</div> 
<div ng-show="cond1 && !cond2"> 
    Other data set 
</div> 

cond1 == falseの場合、両方のデータセットが非表示になります。 trueの場合は、どちらか一方が表示されます。


または使用De Morgan's Theorem

<div ng-show="cond1 && cond2"> 
    One data set 
</div> 
<div ng-hide="!cond1 || cond2"> 
    Other data set 
</div> 
+0

このソリューションは非常に役に立ちました。ありがとうございました! –

関連する問題