发表于: 2020-03-23 23:51:03

1 1574


今天完成的事情:今天学习了AngularJS 事件
明天计划的事情:继续AngularJS的后续内容的学习
遇到的问题:实际操作还是太少需要多加实操练习
收获:AngularJS 有自己的 HTML 事件指令。例如

隐藏 HTML 元素

ng-hide 指令用于设置应用部分是否可见。

ng-hide="true" 设置 HTML 元素不可见。

ng-hide="false" 设置 HTML 元素可见。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>

<body>

  <div ng-app="myApp" ng-controller="personCtrl">

    <button ng-click="toggle()">隐藏/显示</button>

    <p ng-hide="myVar">
      名: <input type=text ng-model="firstName"><br>
      姓: <input type=text ng-model="lastName"><br><br>
      姓名: {{firstName + " " + lastName}}
    </p>

  </div>

  <script>
    var app = angular.module('myApp', []);
    app.controller('personCtrl'function ($scope) {
      $scope.firstName = "John";
      $scope.lastName = "Doe";
      $scope.myVar = false;
      $scope.toggle = function () {
        $scope.myVar = !$scope.myVar;
      }
    });
  </script>

</body>

</html>

运行结果

点击隐藏

再次点击

第一部分 personController与控制器章节类似。

应用有一个默认属性: $scope.myVar = false;

ng-hide 指令设置 <p>元素及两个输入域是否可见, 根据 myVar 的值 (true 或 false) 来设置是否可见。

toggle() 函数用于切换 myVar 变量的值(true 和 false)。

ng-hide="true" 让元素 不可见。

显示 HTML 元素

ng-show 指令可用于设置应用中的一部分是否可见 。

ng-show="false" 可以设置 HTML 元素 不可见。

ng-show="true" 可以以设置 HTML 元素可见。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>

<body>

  <div ng-app="myApp" ng-controller="personCtrl">

    <button ng-click="toggle()">隐藏/显示</button>

    <p ng-show="myVar">
      名: <input type=text ng-model="person.firstName"><br>
      姓: <input type=text ng-model="person.lastName"><br><br>
      姓名: {{person.firstName + " " + person.lastName}}
    </p>

  </div>

  <script>
    var app = angular.module('myApp', []);
    app.controller('personCtrl'function ($scope) {
      $scope.person = {
        firstName: "John",
        lastName: "Doe"
      };
      $scope.myVar = true;
      $scope.toggle = function () {
        $scope.myVar = !$scope.myVar;
      };
    });
  </script>

</body>

</html>

运行结果

点击隐藏

显示

效果是一样的

绑定切换事件

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>

<body>

  <div ng-app="myApp" ng-controller='event'>
    <div ng-show='flag' style='background: #ccc;width: 20px;height: 20px;border-radius: 50%;'></div>
    <button ng-click='toggle()'>{{text}}</button>
  </div>

  <script>
    var app = angular.module('myApp', []);
    app.controller('event', ['$scope'function ($scope) {
      $scope.flag = false;
      $scope.text = '点击可见';

      $scope.toggle = function () {
        $scope.flag = !$scope.flag;
        $scope.text = $scope.flag ? '点击消失' : '点击可见';
      }
    }])
  </script>

</body>

</html>

运行结果

点击

数字 ++ 事件写在 JS 中:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>

<body>

  <div ng-app="myApp" ng-controller="myCtrl">
    <button ng-click="sum()">点我!</button>
    <p>{{ count }}</p>
  </div>

  <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl'function ($scope) {
      $scope.count = 0;
      $scope.sum = function () {
        $scope.count = this.count + 1;
      }
    });
  </script>

</body>

</html>

运行结果

点击

用 ng-init 实现 count 自加和清零:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>

<body>

  <div ng-app="" ng-init="count=0">

    <button ng-click="count = count + 1">点我!</button>
    <button ng-click="count = 0">清零!</button>

    <p>{{ count }}</p>

  </div>
</body>

</html>

运行结果

点击几下

点击清零

剩下的部分明天再继续



返回列表 返回列表
评论

    分享到