AngularJS - Ứng dụng Giỏ Hàng
Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị để tạo một ứng dụng giỏ hàng sử dụng AngularJS. Là một giáo viên khoa học máy tính gần gũi, tôi rất vui mừng được hướng dẫn bạn qua quá trình này, ngay cả khi bạn hoàn toàn mới bắt đầu học lập trình. Vậy, hãy lấy một cốc cà phê (hoặc đồ uống yêu thích của bạn) và cùng nhau vào cuộc!
AngularJS là gì?
Trước khi chúng ta bắt đầu xây dựng ứng dụng giỏ hàng, hãy dành một chút thời gian để hiểu AngularJS là gì. AngularJS là một khung công tác JavaScript mạnh mẽ giúp chúng ta tạo ra các ứng dụng web động. Nó giống như một cây kéo đa năng cho các nhà phát triển web, cung cấp các công cụ để làm cho cuộc sống của chúng ta dễ dàng hơn và mã của chúng ta trở nên có tổ chức hơn.
Thiết lập Dự án của Chúng Ta
Bước 1: Tạo Cấu trúc HTML
Hãy bắt đầu bằng cách tạo một cấu trúc HTML cơ bản cho ứng dụng giỏ hàng của chúng ta. Đừng lo lắng nếu bạn không quen thuộc với HTML; tôi sẽ giải thích từng phần khi chúng ta đi qua.
<!DOCTYPE html>
<html ng-app="cartApp">
<head>
<title>Giỏ Hàng Của Tôi</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="CartController">
<h1>Giỏ Hàng Của Tôi</h1>
<!-- Chúng ta sẽ thêm nội dung hơn ở đây sau -->
</body>
</html>
Trong cấu trúc HTML này, chúng ta đã làm một vài điều quan trọng:
- Chúng ta đã bao gồm thư viện AngularJS sử dụng một liên kết CDN.
- Chúng ta đã liên kết tệp JavaScript của riêng chúng ta (
app.js
) mà chúng ta sẽ tạo sau. - Chúng ta đã thêm
ng-app="cartApp"
vào thẻ<html>
, điều này cho biết rằng đây là phần tử gốc của ứng dụng của chúng ta. - Chúng ta đã thêm
ng-controller="CartController"
vào thẻ<body>
, mà chúng ta sẽ sử dụng để quản lý logic của giỏ hàng.
Bước 2: Tạo Ứng dụng AngularJS
Bây giờ, hãy tạo tệp app.js
và thiết lập ứng dụng AngularJS của chúng ta:
var app = angular.module('cartApp', []);
app.controller('CartController', function($scope) {
$scope.items = [];
$scope.total = 0;
$scope.addItem = function(item) {
$scope.items.push(item);
$scope.calculateTotal();
};
$scope.removeItem = function(index) {
$scope.items.splice(index, 1);
$scope.calculateTotal();
};
$scope.calculateTotal = function() {
$scope.total = $scope.items.reduce(function(sum, item) {
return sum + item.price;
}, 0);
};
});
Hãy phân tích điều này:
- Chúng ta tạo một mô-đun AngularJS có tên 'cartApp'.
- Chúng ta xác định một controller có tên 'CartController'.
- Trong controller, chúng ta thiết lập một mảng trống cho các mục và một biến tổng.
- Chúng ta tạo các hàm để thêm mục, xóa mục và tính tổng.
Xây dựng Giao diện Người Dùng
Bước 3: Tạo Danh sách Mục
Hãy cập nhật HTML của chúng ta để hiển thị các mục trong giỏ hàng:
<body ng-controller="CartController">
<h1>Giỏ Hàng Của Tôi</h1>
<ul>
<li ng-repeat="item in items">
{{item.name}} - ${{item.price}}
<button ng-click="removeItem($index)">Xóa</button>
</li>
</ul>
<p>Tổng: ${{total}}</p>
</body>
Ở đây, chúng ta đang sử dụng các hướng dẫn AngularJS:
-
ng-repeat
để lặp qua các mục -
{{}}
để绑定 dữ liệu để hiển thị các thuộc tính mục -
ng-click
để gọi hàmremoveItem
khi nút được nhấp
Bước 4: Thêm Mới Các Mục
Hãy thêm một biểu mẫu để cho phép người dùng thêm các mục mới:
<form ng-submit="addItem(newItem)">
<input type="text" ng-model="newItem.name" placeholder="Tên mục" required>
<input type="number" ng-model="newItem.price" placeholder="Giá" required>
<button type="submit">Thêm vào giỏ hàng</button>
</form>
Biểu mẫu này sử dụng:
-
ng-submit
để gọi hàmaddItem
khi biểu mẫu được gửi -
ng-model
để liên kết các giá trị đầu vào với đối tượngnewItem
Cải thiện Ứng dụng
Bước 5: Thêm Số Lượng Mục
Hãy điều chỉnh ứng dụng của chúng ta để xử lý số lượng mục:
app.controller('CartController', function($scope) {
// ... mã trước đó ...
$scope.addItem = function(item) {
var existingItem = $scope.items.find(function(i) {
return i.name === item.name;
});
if (existingItem) {
existingItem.quantity += 1;
} else {
item.quantity = 1;
$scope.items.push(item);
}
$scope.calculateTotal();
$scope.newItem = {};
};
$scope.removeItem = function(index) {
var item = $scope.items[index];
item.quantity -= 1;
if (item.quantity === 0) {
$scope.items.splice(index, 1);
}
$scope.calculateTotal();
};
$scope.calculateTotal = function() {
$scope.total = $scope.items.reduce(function(sum, item) {
return sum + (item.price * item.quantity);
}, 0);
};
});
Và cập nhật HTML của chúng ta:
<li ng-repeat="item in items">
{{item.name}} - ${{item.price}} x {{item.quantity}}
<button ng-click="removeItem($index)">Xóa</button>
</li>
Kết luận
Chúc mừng! Bạn đã vừa xây dựng xong một ứng dụng giỏ hàng chức năng sử dụng AngularJS. Chúng ta đã bao gồm các khía cạnh cơ bản của việc thiết lập một ứng dụng AngularJS, tạo controllers, sử dụng các hướng dẫn cho việc liên kết dữ liệu và xử lý sự kiện, và thậm chí thêm một số tính năng nâng cao như quản lý số lượng mục.
Nhớ rằng, học lập trình là một hành trình, và đây chỉ là bước đầu tiên. Hãy tiếp tục thực hành, thử nghiệm và quan trọng nhất là hãy vui vẻ với nó!
Dưới đây là bảng tóm tắt các khái niệm chính của AngularJS mà chúng ta đã sử dụng:
Khái niệm | Mô tả | Ví dụ |
---|---|---|
Mô-đun | Các容器 cho các phần khác nhau của ứng dụng | angular.module('cartApp', []) |
Controller | Chứa logic kinh doanh cho một phần của ứng dụng | app.controller('CartController', function($scope) {...}) |
Scope | Đối tượng mà tham chiếu đến mô hình ứng dụng | $scope.items = [] |
Hướng dẫn | Mở rộng HTML với các thuộc tính và phần tử tùy chỉnh |
ng-repeat , ng-click , ng-submit
|
Liên kết dữ liệu | Đồng bộ hóa dữ liệu giữa mô hình và giao diện người dùng | {{item.name}} |
Tiếp tục lập mã, và nhớ rằng: mỗi chuyên gia từng là một người mới bắt đầu. Bạn đang làm rất tốt!
Credits: Image by storyset