2017-02-13 89 views
0

我是新角度。使用角度替换属性

我的问题是, 如果'ng-if'满足,是否可以用'ng-show'替换'ng-hide'?

我想根据收到的数据隐藏和显示某个div。它的'真'或'假',如果'假'div应该被隐藏,否则它应该显示。

+0

有什么用'NG-if' /'NG-show'本身的问题..?你的问题似乎不清楚 –

+0

...你不应该需要。如果您希望元素始终存在但基于值显示或隐藏,请使用ng-show或ng-hide,否则使用ng - 如果您希望该元素存在或不存在基于值。 –

+0

这是我的问题所在。 我有2组数据。最初我想隐藏他们两个,然后在验证后,我可以显示div中的两个数据中的任何一个。 –

回答

0

目前尚不清楚对我来说,你需要达到什么样的,但也许这将是有益的:

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; 
     } 
    } 
} 

然后在HTML:

<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

该解决方案非常有帮助。谢谢! –