2016-04-25 8 views
0

Я хочу, чтобы мои два ng-if работали вместе, а не отдельно. Если оба они истинны, тогда показываем только последнее, которое истинно. Мой код выглядит так прямо сейчас.Объединение ng-if вместе

<div> 
    <img ng-src="{{img(myColor)}}" ng-if="myColor"> 

    <img ng-src="{{img(myColor2)}}" ng-if="myColor2"> 
</div> 

Однако это просто складывает их друг над другом, когда оба ng-if становятся истинными. Есть ли способ показывать только один за один раз без css

ответ

0

Похоже, вам нужна более сложная логика, чем то, что может обеспечить простая разметка. Почему бы просто не использовать функцию области, которая устанавливает цвет, а затем использовать консолидированную разметку.

<div> 
    <img ng-src="{{img(color)}}" ng-if="color"> 
</div> 

А в вашем JavaScript

$scope.setColor = function() { 
    // Something that determines what color to set. 
    $scope.color = ...; 
}; 
+0

Я выяснен вопрос, когда оба истинны я только хочу показать одну из них - последние нг-если. Как мне это сделать? –

+0

@jebmarcus - что вы подразумеваете под «последним»? –

+0

Я имел в виду, что они переключаются туда и обратно. Если первое ng-if истинно сначала, тогда второе ng-if станет истинным, я хочу показать . Почти как переключатель –

3

Я мог бы быть очень поздно, чтобы предложить решение. Но я предполагаю, что вы можете сделать это с помощью & & побитового оператора.

Ниже приведен пример код:

<div> 
 
    <img ng-src="{{img(myColor)}}" ng-if="myColor && !myColor2"> 
 

 
    <img ng-src="{{img(myColor2)}}" ng-if="myColor && myColor2"> 
 
</div>