AngularJS Hello World: Chương trình ví dụ đầu tiên của bạn
⚡ Tóm tắt thông minh
Chương trình "Hello World" của AngularJS chỉ cần một tệp HTML duy nhất, một tham chiếu script và hai directive, ng-app và ng-controller, để liên kết một biến phạm vi controller vào trang thông qua biểu thức ngoặc kép.

Cách tốt nhất để thấy được sức mạnh của một ứng dụng AngularJS là tạo chương trình cơ bản đầu tiên của bạn, một ứng dụng "Hello World" bằng AngularJS.
Có rất nhiều môi trường phát triển tích hợp mà bạn có thể sử dụng cho AngularJS Trong quá trình phát triển, một số phương pháp phổ biến được đề cập bên dưới. Trong ví dụ của chúng tôi, chúng tôi đang sử dụng Webstorm như IDE của chúng tôi.
- Webstorm
- Sublime Text
- AngularJS Eclipse
- Visual Studio
Xin chào thế giới, AngularJS
Ghi chú phiên bản: AngularJS 1.x đã ngừng hỗ trợ dài hạn vào ngày 31 tháng 12 năm 2021, và nhóm phát triển framework xác nhận điều này. Việc hỗ trợ AngularJS đã chính thức kết thúc. Vào tháng 1 năm 2022, với phiên bản 1.8.3 là bản phát hành cuối cùng và không có bản vá bảo mật nào sau đó. Mọi bước và khối mã bên dưới đều được giữ nguyên chính xác như đã viết. Các dự án mới nên được triển khai trên Angular hiện đại, nơi mà quy trình tương tự bắt đầu từ... ng serve và một thành phần độc lập và vẫn sử dụng cùng một phương pháp. {{ }} cú pháp nội suy.
Ví dụ bên dưới cho thấy cách dễ nhất để tạo ứng dụng “Hello world” đầu tiên của bạn trong AngularJS.
Ảnh chụp màn hình có chú thích bên dưới ghi nhãn từng phần của tệp đó, và bảy con số của nó khớp với... Code Danh sách giải thích ở bên dưới. Đoạn mã này được ghi lại từ bản dựng 1.4.0 cũ hơn, vì vậy dòng lệnh của nó khác với phiên bản được ghim trong mã.
<!DOCTYPE html> <html ng-app="app"> <head> <meta charset="utf 8"> <title>Guru99</title> </head> <body> <h1 ng-controller="HelloWorldCtrl">{{message}}</h1> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script> angular.module("app", []).controller("HelloWorldCtrl", function($scope) { $scope.message="Hello World" } ) </script> </body> </html>
Code Giải thích:
- Các "ứng dụng ngTừ khóa “” được sử dụng để chỉ ra rằng ứng dụng này nên được coi là một ứng dụng AngularJS. Ứng dụng này có thể được đặt bất kỳ tên nào.
- Bộ điều khiển là nơi chứa logic nghiệp vụ. Trong thẻ h1, chúng ta muốn truy cập vào... điều khiển, phần này sẽ chứa logic để hiển thị “Hello World”, vì vậy ta có thể nói rằng, trong thẻ này ta muốn truy cập vào bộ điều khiển có tên là “HelloWorldCtrl”.
- Chúng tôi đang sử dụng một biến thành viên có tên là “message”, không có gì khác ngoài một trình giữ chỗ để hiển thị thông báo “Xin chào thế giới”.
- Thẻ “script tag” được sử dụng để tham chiếu đến tập lệnh angular.js chứa tất cả các chức năng cần thiết cho AngularJS. Nếu không có tham chiếu này, nếu chúng ta cố gắng sử dụng bất kỳ chức năng nào của AngularJS, chúng sẽ không hoạt động.
- “Controller” là nơi chúng ta thực sự tạo ra logic nghiệp vụ, tức là bộ điều khiển của chúng ta. Chi tiết về từng từ khóa sẽ được giải thích trong các chương tiếp theo. Điều quan trọng cần lưu ý là chúng ta đang định nghĩa một phương thức điều khiển có tên là 'HelloWorldCtrl', phương thức này được tham chiếu trong Bước 2.
- Chúng ta đang tạo một "hàm" sẽ được gọi khi mã của chúng ta gọi đến bộ điều khiển này. Đối tượng `$scope` là một đối tượng đặc biệt trong AngularJS, là một đối tượng toàn cục được sử dụng trong AngularJS. Đối tượng `$scope` được sử dụng để quản lý dữ liệu giữa bộ điều khiển và giao diện người dùng.
- Chúng ta tạo một biến thành viên có tên là “message”, gán cho nó giá trị “Hello World” và gắn biến thành viên này vào đối tượng phạm vi.
LƯU Ý: Lệnh ng-controller là một từ khóa được xác định trong AngularJS (Bước 2) được sử dụng để định nghĩa các bộ điều khiển trong ứng dụng của bạn. Ở đây, trong ứng dụng của chúng tôi, chúng tôi đã sử dụng từ khóa ng-controller để định nghĩa một bộ điều khiển có tên là 'HelloWorldCtrl'. Logic thực tế cho bộ điều khiển sẽ được tạo ra trong (Bước 5).
Nếu mã được thực thi thành công, kết quả sau sẽ hiển thị khi bạn chạy mã trên trình duyệt.
Đầu ra:
Thông báo 'Xin chào thế giới' sẽ được hiển thị.
Cách tải AngularJS: CDN hay tệp cục bộ?
Ví dụ trên hoạt động vì chỉ một dòng lệnh đã đưa framework vào trang trước khi trình duyệt đạt đến cuối phần thân trang. AngularJS được phân phối dưới dạng một gói duy nhất. JavaTệp kịch bản, vì vậy chương trình đầu tiên không cần bước biên dịch và không cần trình quản lý gói. Một tệp HTML đơn giản được mở trong trình duyệt là đủ.
Có hai cách để đưa tập tin đó vào.
- Tham khảo bản sao từ CDN. Ví dụ này chỉ ra rằng
code.angularjs.orgvà ghim phiên bản 1.6.9. Máy chủ đó vẫn phục vụ các bản dựng 1.x, phiên bản cao nhất là 1.8.2, trong khi Google Hosted Libraries hiện không còn liệt kê AngularJS nữa. - Tải xuống bản sao cục bộ. Lưu tệp đó bên cạnh trang HTML và trỏ thẻ script đến tệp đó. Bản sao cục bộ giúp ví dụ hoạt động ngoại tuyến, điều này rất quan trọng khi máy chủ proxy chặn CDN.
<!-- Option 1: reference a CDN copy --> <script src="https://code.angularjs.org/1.8.2/angular.min.js"></script> <!-- Option 2: reference a downloaded copy in the same folder --> <script src="angular.min.js"></script>
Sử dụng angular.js trong khi học tập và angular.min.js Trong môi trường sản xuất: bản dựng chưa được tối ưu hóa in ra ngăn xếp có thể đọc được. tracTrong khi đó, bản dựng thu gọn lại báo cáo các biến đã được đổi tên.
Sau khi tập tin được tải, ng-app Khởi động khung sườn. AngularJS tìm kiếm thuộc tính đó khi tài liệu tải xong, coi phần tử mang thuộc tính đó là gốc biên dịch và khởi tạo mô-đun có tên trong giá trị của nó. Ba hệ quả sau đây xảy ra:
- Chỉ có đầu tiên
ng-appTrên một trang được khởi tạo tự động. Trang thứ hai sẽ bị bỏ qua trừ khiangular.bootstrapđược gọi thủ công. - Giá trị phải chỉ định một mô-đun đã được đăng ký với góc cạnh.modulenếu không thì bảng điều khiển sẽ báo cáo
[$injector:modulerr]. - Đặt
ng-apptrênhtmlNhư ví dụ đã nêu, phần tử này đưa toàn bộ tài liệu vào AngularJS; một vùng chứa hẹp hơn cũng hoạt động tốt.
Cách thức hoạt động của biểu thức {{ }} và liên kết ng-model
Niềng kép xung quanh message Trong thẻ h1 không có văn bản giữ chỗ nào được điền đầy khi tải trang. AngularJS biên dịch nút văn bản đó thành một trình theo dõi trên phần tử xung quanh. phạm vi, do đó kết quả hiển thị tracks $scope.message Chừng nào trang web còn hoạt động.
Chu trình diễn ra theo ba bước.
- Bộ điều khiển ghi một giá trị vào
$scope. - Một bước xử lý tóm tắt so sánh mọi biểu thức được theo dõi với kết quả trước đó của nó.
- Mỗi biểu thức có giá trị thay đổi sẽ được hiển thị lại tại chỗ.
Do đó, biểu thức nội suy là một chiều, từ phạm vi đến khung nhìn. Liên kết hai chiều cần mô hình ng, Các Chỉ thị Được thiết kế cho các điều khiển biểu mẫu. Thêm <input ng-model="message"> Bên cạnh tiêu đề, hãy nhập vào ô, và tiêu đề sẽ thay đổi sau mỗi lần nhấn phím, bởi vì ng-model ghi giá trị của trường trở lại cùng thuộc tính phạm vi mà biểu thức theo dõi.
Các biểu thức được giới hạn một cách có chủ ý. Chúng đọc các thuộc tính phạm vi, gọi các phương thức phạm vi và chấp nhận các giá trị không xác định một cách im lặng, nhưng chúng không thể khai báo biến, sử dụng các câu lệnh điều khiển luồng hoặc truy cập các đối tượng toàn cục như... window.
Cách khắc phục trang trắng hoặc trang chưa hiển thị {{ }}
Chương trình AngularJS đầu tiên gặp lỗi theo một trong hai cách dễ thấy: trang vẫn trống hoặc văn bản hiển thị không chính xác. {{message}} Dòng chữ "Hello World" xuất hiện ở vị trí đáng lẽ phải là "Hello World". Cả hai trường hợp đều có nghĩa là framework chưa bao giờ tiếp quản mã HTML. Hãy thực hiện các bước kiểm tra bên dưới theo thứ tự, với cửa sổ dòng lệnh của trình duyệt đang mở.
- Xác nhận thư viện đã được tải. Mở bảng điều khiển Mạng và tìm kiếm...
angular.jsYêu cầu. Lỗi 404 hoặc CDN không thể truy cập sẽ khiến dấu ngoặc nhọn trên màn hình không bị thay đổi. - Kiểm tra đường dẫn của tập lệnh. Đường dẫn tương đối sẽ được giải quyết dựa trên thư mục chứa tệp HTML, vì vậy một bản sao trong một
jsthư mục con cầnjs/angular.min.js. - Xác minh ng-app. Thuộc tính bị thiếu hoặc viết sai chính tả sẽ không có tác dụng gì khi khởi động hệ thống. Thuộc tính được viết có dấu gạch ngang như sau:
ng-apptrong mã đánh dấu, mặc dù chỉ thị được viết theo kiểu camel-case. JavaKịch bản. - Hãy đọc thông báo lỗi trên bảng điều khiển.
[$injector:modulerr]Điều này có nghĩa là mô-đun được đặt tên bởi ng-app chưa bao giờ được đăng ký.[ng:areq]Thông thường, điều này có nghĩa là tên bộ điều khiển trong mã đánh dấu không khớp với tên được truyền vào..controller(). - Hãy tìm một ng-app thứ hai. Chỉ phần tử đầu tiên được khởi tạo tự động, vì vậy một bản sao thừa còn sót lại trên một phần tử bên trong sẽ âm thầm vô hiệu hóa phần đó của trang.
Hai nguyên nhân khác nữa chiếm phần lớn trong các báo cáo còn lại.
- Giao thức tập tin. Ví dụ chỉ với một tệp này hoạt động tốt khi được mở trực tiếp từ ổ đĩa, nhưng bất kỳ mẫu nào được tải về qua XHR đều bị chặn bởi các quy tắc nguồn gốc của trình duyệt. Hãy phục vụ thư mục đó qua HTTP sau khi các mẫu đã xuất hiện.
- Một thoáng nhìn thấy niềng răng. Khi mã đánh dấu được hiển thị trước khi khung biên dịch, biểu thức thô sẽ hiển thị trong giây lát. Thêm
ng-cloakđến phần tử, hoặc hoán đổi biểu thức chong-bind="message", vốn không bao giờ hiển thị mã đánh dấu của chính nó.
Nếu không có trường hợp nào trong số này áp dụng, hãy thu nhỏ trang về ví dụ trên và thêm mã của riêng bạn vào từng dòng một.


