[Học AngularJS] - Bài 02 - ng-app
Ở 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é.
Bài viết này được đăng tại [free tuts .net]
# 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.
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ínhng-app
bên HTML[]
là danh sách các phần ở rộng ta sử dụng chong-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.