Bài 19: Directive ng-init trong AngularJS

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

Tất cả các ví dụ từ trước tới nay đều sử dụng Controller để thiết lập gái trị khởi tạo ban đầu, nhưng có một cách khác là sử dụng directive ng-init để thay thế. Chúng ta sẽ khai báo giá trị khởi tạo dưới dạng chuỗi, và cách dùng có thể dùng để gán giá trị hoặc khởi tạo giá trị ban đầu.

Như bạn biết tất cả các giá trị chúng ta sử dụng đều lưu trong đối tượng $scope nên ta có thể coi $scope là một biến toàn cục, vì ngInit dùng để khai báo giá trị khởi tạo hoặc gán biến gì đó và được chương trình ứng dụng nhận biết luôn nên bản chất là ngInit can thiệp vào $scope để thay đổi giá trị.

2. ví dụ directive trong angularjs

Để tiện cho việc hiểu bài thì chúng ta sẽ làm một số ví dụ đơn giản nhé, trong ví dụ này chúng ta có sử dụng directive ng-repeat để lặp dữ liệu đấy nhé.

Cho một mảng danh sách sinh viên như sau:

friends = [
    {name: 'John', age: 25, gender: 'boy'},
    {name: 'Jessie', age: 30, gender: 'girl'},
    {name: 'Johanna', age: 28, gender: 'girl'},
    {name: 'Joy', age: 15, gender: 'girl'},
    {name: 'Mary', age: 28, gender: 'girl'},
    {name: 'Peter', age: 95, gender: 'boy'},
    {name: 'Sebastian', age: 50, gender: 'boy'},
    {name: 'Erika', age: 27, gender: 'girl'},
    {name: 'Patrick', age: 40, gender: 'boy'},
    {name: 'Samantha', age: 60, gender: 'girl'}
];
Hãy sử dụng ng-init để gán giá trị ban đầu và sử dụng ng-repeat để in kết quả danh sách sinh viên ra ngoài trình duyệt.

CodeXEM DEMO

<!doctype html>
<html lang="vi">
    <head>
        <meta charset="UTF-8">
        <title>Ví dụ sử dụng Directive ng-init 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('ngInit', [])
                    .controller('myController', ['$scope', function($scope) {
                }]);
        </script>
    </head>
    <body ng-app="ngInit" ng-author="thehalfheart@gmail.com" ng-website="freetuts.net">
        <div ng-controller="myController">
            <ul ng-init="
                                    students = [
                                        {name: 'thehalfheart@gmail.com', age: 25, gender: 'boy'},
                                        {name: 'freetuts.net', age: 30, gender: 'girl'},
                                        {name: 'Johanna', age: 28, gender: 'girl'},
                                        {name: 'Joy', age: 15, gender: 'girl'},
                                        {name: 'Mary', age: 28, gender: 'girl'},
                                        {name: 'Peter', age: 95, gender: 'boy'},
                                        {name: 'Sebastian', age: 50, gender: 'boy'},
                                        {name: 'Erika', age: 27, gender: 'girl'},
                                        {name: 'Patrick', age: 40, gender: 'boy'},
                                        {name: 'Samantha', age: 60, gender: 'girl'}
                                    ]
                             ">
                <li ng-repeat="student in students">
                    Tên: {{student.name}}, Tuổi {{student.age}}, Giới tính: {{student.gender}}
                </li>
            </ul>
        </div>
    </body>
</html>
Giao diện:

Các bạn thấy bên trong code mình đã sử dụng ng-init để khai báo danh sách sinh viên đúng không nào. Trong thực tế thay vì sử dụng như vậy thì bạn có thể khai báo nó trong controller giống như các ví dụ ở các bài trước. Và một điều nữa là cú pháp chúng ta sử dụng trong ng-init giống như code thật nhé các bạn, nếu sai cú pháp thì sẽ không chạy đâu.

Lời kết

Vậy là xong bài này rồi, đối tượng Directive ng-repeat này rất là hay, nó giúp chúng ta sử dụng linh hoạt không trong việc xây dựng ứng dụng angular. Khi học tới bài này thì bạn thấy thực sự angular rất mạnh đúng không nào? Nhất là cấu trúc Directive tuyệt vời.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.