hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • AngularJS
Event handling (xử lý xự kiện) trong angularJS

Event handling (xử lý xự kiện) trong angularJS

  • 20-04-2022
  • Toanngo92
  • 0 Comments

Với javascript thuần hay jquery, chúng ta thường tương tác với DOM, như bắt các sự kiện click, di chuột, submit form, sự kiện thay đổi của thẻ, angularJS cung cấp cho chúng ta giải pháp ngắn gọn hơn giúp chúng ta xử lý các vấn đề này. Một số directives dùng cho event handling trong angularJS:

  • ng-click
  • ng-dbl-click
  • ng-keydown
  • ng-keyup
  • ng-mousedown
  • ng-mouseenter
  • ng-mouseleave
  • ng-change
  • ng-submit
  • …

Xem thêm docs tại đây: https://docs.angularjs.org/api/ng/directive/

Chúng ta chỉ cần đơn giản đưa directive event handling vào thẻ chúng ta mong muốn bắt sự kiện và định nghĩa hàm để sử dụng. Xem ví dụ dưới:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello world angular</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
    <div ng-app="calculateApp"  ng-controller="calculateController">
        <label>Quantity:</label>
        <input type="number" min="1" max="10" ng-model="qty" />
        <label>Price</label>
        <input type="number" min="0" max="5000" ng-model="price" />
        <div>Total: {{total | currency: '$ '}}</div>
        <button ng-click="calculate()">Calculate</button>
    </div>
    <script>
        var app = angular.module('calculateApp', []);
        app.controller('calculateController',function($scope){
            $scope.qty = 0;
            $scope.price = 0;
            $scope.total = 0;
            $scope.calculate = function(){
                this.total = this.qty * this.price;
            }
        });
    </script>
</body>
</html>

Ở ví dụ này, chúng ta xử lý sự kiện bấm của người dùng thông qua directive ng-click, gọi tới hàm calculate(). Dưới tầng script, định nghĩa ra phương thức (method/function) calculate và xử lý logic theo ý đồ chúng ta mong muốn. Tương tự với các sự kiện còn lại.

Xét ví dụ sau:

<!DOCTYPE html>
<html lang="en" ng-app="exampleviewApp">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Example View AngularJS</title>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
</head>
<body ng-controller="mainController">  
    <h2>Hello {{name}}</h2>
    <input type="text" ng-model="name" ng-change="change()" />
    {{length}}
</body>
<script>
    var exampleviewApp = angular.module('exampleviewApp', []);
    exampleviewApp.controller('mainController', function($scope) {
        $scope.name = '';
        $scope.length = 0;
        $scope.change = function(){
            $scope.length = $scope.name.length;
        }
    });
</script>
</html>

Kết quả khi chạy code:

Ở ví dụ trên, chúng ta sẽ thấy giải pháp khi kết hợp data binding với sự kiện change, code rất sạch, ngắn và data được cập nhật realtime.

Bài tập

Khởi tạo một ứng dụng với giao diện như hình dưới với yêu cầu:

  1. Tạo ra 3 model tại 3 controller khác nhau mỗi model biểu diễn đầy đủ thông tin user
  2. Khi người dùng bấm và nút ở menu, đổi giao diện ở menu hiển thị thành người dùng khác (phần này có thể sử dụng js thuần)
  3. Khi người dùng bấm vào nút follow,  trạng thái của nút đổi thành màu đỏ, text đổi thành Followed

 

Bài viết liên quan:

Factory và Service trong angularJS
Cơ chế dependency Injection (cơ chế tiêm phụ thuộc) trong angularJS
Animation trong angularJS
Form validation trong angularJS
Route (định tuyến) trong angularJS
Filter (bộ lọc) trong angularJS
Service trong AngularJS và các service giao tiếp với máy chủ
Scope và rootScope trong AngularJS
Directive (chỉ thị) trong angularJS và danh sách các directive
Cơ chế Data binding trong AngularJS
Expressions (biểu thức) trong AngularJS
Views trong AngularJS

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

4. KIỂM THỬ VÀ TRIỂN KHAI HỆ THỐNG

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

3. THIẾT KẾ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×