06/04/2021, 14:48

[Học AngularJS] - Bài 02 - ng-a - AngularJS căn bản

Ở video trươc chúng ta đã học được cách download và chạy chương trình Hello World! rồi, vậy thì trong video này chúng ta sẽ tìm hiểu đến một directive rất là quan trọng trong angularjs đó là ng-app. Trong một ứng dụng website thì ng-app đóng vai trò là một main module, nếu Angular nó nhận thấy ...

Ở video trươc chúng ta đã học được cách download và chạy chương trình Hello World! rồi, vậy thì trong video này chúng ta sẽ tìm hiểu đến một directive rất là quan trọng trong angularjs đó là ng-app.

Trong một ứng dụng website thì ng-app đóng vai trò là một main module, nếu Angular nó nhận thấy ta khai báo ng-app ngay tại vị trí nào thì nó sẽ tự hiểu là tất cả các thẻ con bên trong sẽ sử dụng AngularJS. Như trong ví dụ dưới đây ta khai báo ng-app ngay tại thẻ body, lúc này Angular sẽ biên dịch tất cả những đoạn code bên trong đó nếu có sử dụng cú pháp của Angular thì sẽ được thực thi.

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script language="javascript" src="app/components/angular.min.js"></script>
    </head>
    <body ng-app="">
        <!-- CODE INSIDE -->
    </body>
</html>

Bây giờ ta đi vào tìm hiểu từng phần nhé.

# Sử dụng ng-app với giá trị rỗng

Ví dụ dưới đây rất giống với ví dụ ở bài trước:

<!DOCTYPE html>
<html>
    <head>
        <title>Tìm hiểu ng-app (trường hợp không có tên)</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script language="javascript" src="app/components/angular.min.js"></script>
    </head>
    <body ng-app="">
        <input ng-model="message"/>
        {{message}}
    </body>
</html>

Như vậy khi chạy lên nó sẽ biên dịch các thẻ bên trong body vì chúng ta khai báo body là ng-app. Chạy lên các bạn thấy kết quả cũng như bài hôm trước.

# Sử dụng ng-app với giá trị khác rỗng

Bây giờ bạn thử thêm một giá trị cho thuộc tính ng-app như sau:

<body ng-app="myApp">
    <input ng-model="message"/>
    {{message}}
</body>

Chạy lên chương trình sẽ bị lỗi. Lý do là chúng ta có khai báo tên cho ng-app nên bắt buộc phải khai báo nó bằng javascript. Bây giờ bạn tạo một file app.js và import nó vào vào (Xem hình cấu trúc folder ở trên để rõ hơn):

<script language="javascript" src="app/app.js"></script>

Lưu ý là bạn phải đặt file app.js bên dưới file angular.min.js nhé.

<script language="javascript" src="app/components/angular.min.js"></script>
<script language="javascript" src="app/app.js"></script>

Ok bây giờ ta viết một đoạn code như sau trong file app.js:

var myApp = angular.module("myApp", []);

Chạy lên và các bạn sẽ thấy chương trình hoạt động bình thường.

XEM ONLINE

Note: Biến angular chính là instance của AngularJS nên ta sử dụng nó để tạo tất cả các đối tượng. Như đoạn code trên ta sử dụng hàm module với 2 tham số như sau:

  • myApp: Là tên của app, nó phải giống với giá trị của thuộc tính ng-app bên HTML
  • [] là danh sách các phần ở rộng ta sử dụng cho ng-app myApp này, các phần mở rộng này có thể do ta tự viết hoặc của AngularJS nó cung cấp (xem tại đây). Ví dụ tôi sử dụng thư viện angular-animate.js thì tôi sẽ download nó về, sau đó import vào file index.html và khai báo trong javascript như sau:
    var myApp = angular.module("myApp", ['ngAnimate']);

# Summary

Như vậy khi khai báo ng-app ta có thể gán tên cho nó hoặc là không gán tên, nếu có gán tên thì bắt buộc ta phải khai báo nó bằng javascript nữa nếu không chương trình chạy sẽ lỗi ngay. Còn nếu không gán tên thì không cần phải khai báo. Trong thực tế thì ta nên gán tên bởi vì trong quá trình sử dụng ta sẽ import một số thư viện vào nữa nên bắt buộc ta phải có cái tên để biết import vào đâu.

Vũ Văn Thanh

12 chủ đề

2597 bài viết

Cùng chủ đề
0