Bài 23: Directive ng-click trong angularjs

Trong các đối tượng HTML (các thẻ HTML) có một sự kiện mà đối tượng nào cũng có đó là onclick, sự kiện này xảy ra khi chúng ta dùng chuột click vào phạm vi hiển thị của thẻ đó, nếu các thẻ chồng lên nhau thì khi chúng ta click thì cấp cao nhất sẽ được xảy ra trước. Với angular thì nó cung cấp cho chúng ta một directive tương tự đó là ng-click, cách hoạt động nó cũng không khác gì sự kiện onclick. Chi tiết chúng ta sẽ tìm hiểu qua các ví dụ dưới đây nhé.

1. Tìm hiểu directive ng-click trong angularjs

Sự kiện này sẽ xảy ra khi chúng ta click vào thẻ hiện tại. Cú pháp là <element ng-click="statment"></element>,  trong đó:

  • ng-click là tên của directive ngClick
  • statment là những dòng lệnh sẽ chạy. Bạn có thể truyền vào hàm hoặc những đoạn code rời rạc

2. Các ví dụ về ng-click trong angularjs

Chúng ta sẽ xây dụng một ứng dụng đơn giản đó là thực hiện đếm số lần click vào thẻ button bằng hai cách (Gọi đến hàm và xử lý trực tiếp)

Gọi đến hàm

Cách này chúng ta sẽ gọi đến một hàm khai báo trong $scope ở controller.

XEM DEMO

<!doctype html>
<html lang="vi">
    <head>
        <meta charset="UTF-8">
        <title>NG-CLICK trong AngularJS - Freetuts.net</title>
        <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
        <style>
            *{margin:0;padding:0}
            body{margin:20px;}                       
        </style>
        <script>
            /*
             * Author: thehalfheart@gmail.com
             * Website: freetuts.net
             */
            angular.module('ngCLickExample', [])
                .controller('ngClickController', function($scope){
                    
                    // Gán giá trị khởi đầu cho count
                    $scope.count = 0;
                    
                    // Hàm tăng count lên 1 đơn vị
                    $scope.TangBienCount = function(){
                        $scope.count++;
                    };
                });
        </script>
    </head>
    <body ng-app="ngCLickExample" ng-controller="ngClickController">
        <h1>Freetuts.net - ng-click</h1>
        <input type="button" value="Click Me" ng-click="TangBienCount()" /> <br/><br/>
        <span>Bạn đã click {{count}} lần</span>
    </body>
</html>

Xử lý trực tiếp

Cách này chúng ta xử lý trực tiếp ngay tại vị trí ng-click luôn.

XEM DEMO

<!doctype html>
<html lang="vi">
    <head>
        <meta charset="UTF-8">
        <title>NG-CLICK trong AngularJS - Freetuts.net</title>
        <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
        <style>
            *{margin:0;padding:0}
            body{margin:20px;}                       
        </style>
        <script>
            /*
             * Author: thehalfheart@gmail.com
             * Website: freetuts.net
             */
            angular.module('ngCLickExample', [])
                .controller('ngClickController', function($scope){                    
                    // Gán giá trị khởi đầu cho count
                    $scope.count = 0;
                });
        </script>
    </head>
    <body ng-app="ngCLickExample" ng-controller="ngClickController">
        <h1>Freetuts.net - ng-click</h1>
        <input type="button" value="Click Me" ng-click="count = count + 1" /> <br/><br/>
        <span>Bạn đã click {{count}} lần</span>
    </body>
</html>
Sự khác biệt ở hai cách này là cách 1 ta gọi đến hàm khai báo trong controller, cách hai thì ta tăng biến count trực tiếp ngay ng-click luôn. Cả hai cách trên chạy lên giao diện sẽ giống nhau:

vi-du-ng-click-trong-angularjs.png

3. Lời kết

Quá đơn giản cho phần này, bản chất nó hoạt động giống như sự kiện onclick trong javascript thôi nên bạn rất dễ hiểu đối với directive này. Chúc các bạn học tốt và nhớ  theo dõi ủng hộ những bài viết mới tiếp theo của freetuts.net nhé.

Khóa học Angular 1x kết hợp với PHP và MySQL rất hay

Nếu bạn đang tìm hiểu Angular 1x + PHP/MySQL thì hãy tham khảo khóa học tạo ứng dụng Angular này, đây là khóa học được biên soạn bởi anh Việt, giảng viên tại fedu.vn. Trong khóa học này bạn sẽ được hướng dẫn sử dụng Angular 1  để hiển thi dữ liệu được trả về từ Server (PHP và MySQL).

Nguồn: freetuts.net