带有多个参数的 Angular ng-if=""

问题描述 投票:0回答:5

我正在尝试开始角度开发。在查看文档后,仍然存在一些问题。我如何最好地编写一个具有与

 对应的多个参数的 
ng-if

if( a && b)
if( a || b )

javascript angularjs angular-ng-if
5个回答
181
投票

这是可能的。

<span ng-if="checked && checked2">
  I'm removed when the checkbox is unchecked.
</span>

http://plnkr.co/edit/UKNoaaJX5KG3J7AswhLV?p=preview


18
投票

澄清一下,请注意支架的放置很重要!

这些可以添加到任何 HTML 标签...span、div、table、p、tr、td 等。

AngularJS

ng-if="check1 && !check2" -- AND NOT
ng-if="check1 || check2" -- OR
ng-if="(check1 || check2) && check3" -- AND/OR - Make sure to use brackets

Angular2+

*ngIf="check1 && !check2" -- AND NOT
*ngIf="check1 || check2" -- OR
*ngIf="(check1 || check2) && check3" -- AND/OR - Make sure to use brackets

最好不要直接在 ngIfs 中进行计算,因此请在组件中分配变量,并在那里执行任何逻辑。

boolean check1 = Your conditional check here...
...

9
投票

对于那些想要使用多个“或”值执行 if 语句的人。

<div ng-if="::(a || b || c || d || e || f)"><div>

3
投票

是的,这是可能的。 例如结帐:

<div class="singleMatch" ng-if="match.date | date:'ddMMyyyy' === main.date &&  match.team1.code === main.team1code && match.team2.code === main.team2code">
    //Do something here
    </div>

0
投票

执行此操作的另一种方法是在控制器范围内使用函数。

控制器

var myApp = angular.module('myApp',[]);

myApp.controller('MyController', ['$scope', function($scope) {

    $scope.ControllerModel = {
        check1: true,
        check2: false,
    };

    $scope.Validate_ItemOfMyList(item) {

        if (item == null) item = $scope.ControllerModel;

        return item.check1 && !item.check2;

    };

}]);

查看

<p ng-if="Validate_ItemOfMyList()" >This item is valid!</p>

使用 ng-repeate

<div class="myClass"
    ng-repeat="item in MyList"
>
    <p ng-if="Validate_ItemOfMyList(item)">This item is valid!</p>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.