如何用ng-if检查一个元素在DOM上是否可见

如何用ng-if检查一个元素在DOM上是否可见

ng-if指令: AngularJS中的**ng-if*指令用于根据一个表达式移除或重新创建HTML元素的一部分。如果它里面的表达式是假的,那么该元素就被移除,如果是真的,那么该元素就被添加到DOM中。

语法:

<element ng-if="expression"> Contents... </element>

步骤:

  • 考虑做一个包含三个项目的核对清单。
  • 一旦所有物品被买走,我们就会显示一条信息–“所有物品都被买走了!”。
  • 在开始的时候,NG-IF从DOM树的一部分中删除这个信息,并且基于表达式,当它被评估为真时,它在DOM中被重新创建。
  • 为了观察这些变化,我们将在网络浏览器上检查代码。在谷歌浏览器中启用检查的不同方法。
  • 菜单栏 -> 更多工具 -> 开发者工具。
  • 在浏览器中右击 -> 检查
  • Ctrl + Shift + I (Windows)
  • Cmd + Opt + I (Mac OS)

注意:更多信息请访问chrome-inspect-element-tool-shortcut。

代码实现:

<!DOCTYPE html>
<html>
 
<head>
    <meta name="viewport" content=
        "width=device-width, initial-scale=1">
    <link rel="stylesheet" href=
"https://www.w3schools.com/w3css/4/w3.css">
    <script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.8.0/angular.min.js">
    </script>
</head>
 
<body ng-app="myApp">
    <div ng-controller="myCtrl"
        class="w3-container">
        <h1 align="center" class="w3-text-green">
            GeeksforGeeks
        </h1>
        <h4 align="center" class="w3-text-green">
            A computer science portal for geeks
        </h4>
        <ul>
            <li ng-repeat="item in items">
                Buy {{item.name}} {{item.quantity}}
                <button ng-click=Bought(index)
                    class="w3-button w3-round w3-border
                        w3-margin-bottom">
                    Bought
                </button>
            </li>
        </ul>
        <p class="w3-text-red" align="center"
            ng-if="items.length == 0">
            Everything is Bought!
        </p>
 
 
    </div>
    <script type="text/javascript">
        (function () {
            angular.module("myApp", []).controller(
                "myCtrl", function (scope) {
                scope.items = [
                    { name: "Milk", quantity: "2 Packet" },
                    { name: "Biscuit", quantity: "10 Packet" },
                    { name: "Bread", quantity: "5 Packet" }
                ];
                scope.Bought = function (index) {
                    $scope.items.splice(index, 1);
                };
            });
        })();
    </script>
</body>
 
</html>

输出:

在点击所有按钮之前:这里,我们有三个按钮可以点击并购买各自的物品。

如何用ng-if检查一个元素在DOM上是否可见?

在检查窗口中:我们可以看到ng-if被注释掉了,作为表达式的一部分,DOM树被评估为False。

如何用ng-if检查一个元素在DOM上是否可见?

点击所有按钮后:由于我们已经点击了所有按钮并购买了每件物品,屏幕上显示了一条信息。

如何用ng-if检查一个元素在DOM上是否可见?

在检查窗口:我们可以看到ng-if现在已经没有注释了,现在它是DOM树的一部分,表达式被评估为True。

如何用ng-if检查一个元素在DOM上是否可见?

这个GIF输出显示了正在发生的一切。

如何用ng-if检查一个元素在DOM上是否可见?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程