在 Web 应用程序中实现购物车功能是一个常见的需求。本文将介绍如何使用 Angular 和 Bootstrap 3 实现购物车功能,并提供示例代码和指导意义。
前置条件
在开始编写购物车功能之前,需要确保已经安装和配置好以下工具:
- Node.js(v14 或更高版本)
- Angular CLI(v11 或更高版本)
创建 Angular 应用程序
首先,在命令行中运行以下命令创建一个新的 Angular 应用程序:
ng new shopping-cart
然后进入项目目录并启动开发服务器:
cd shopping-cart ng serve
现在可以在浏览器中访问 http://localhost:4200 来查看应用程序。
添加 Bootstrap 3
接下来,需要将 Bootstrap 3 添加到应用程序中。有多种方法可以实现这一点,但在本文中我们将使用 npm 包管理器。
在命令行中运行以下命令:
npm install bootstrap@3 --save
然后,在 angular.json
文件中添加以下内容:
"styles": [ "node_modules/bootstrap/dist/css/bootstrap.min.css", "src/styles.css" ], "scripts": [ "node_modules/jquery/dist/jquery.min.js", "node_modules/bootstrap/dist/js/bootstrap.min.js" ]
现在,Bootstrap 3 已经添加到应用程序中了。
创建购物车组件
在 Angular 中,一个组件负责管理视图和数据。因此,我们需要创建一个购物车组件来显示购物车的内容并处理用户的操作。
在命令行中运行以下命令:
ng generate component shopping-cart
然后在 app.component.html
文件中添加以下内容:
<app-shopping-cart></app-shopping-cart>
现在,打开 shopping-cart.component.ts
文件并添加以下代码:
-- -------------------- ---- ------- ------ - --------- - ---- ---------------- ------------ --------- -------------------- ------------ --------------------------------- ---------- --------------------------------- -- ------ ----- --------------------- - ------ ------ - --- ------------- ------- ------ ------- - ----- ---- - ----------------- -- ------ --- ------ -- ------ - ---------------- - ---- - ------------------- ---------- -------- - - ---------------- ----- - ----- ----- - ------------------------- -- ------ -- -- - ------------------------ --- - - --- ------- - ------ ------------------------- ----- -- ----- - ---------- - -------------- --- - - ----- ---- - -------- - -- ------------------ ----- ------- ------ ------ ------- -- -
这个组件包含一个数组 items
,用于存储购物车中的项目。还添加了三个方法:
addItem
:将项目添加到购物车中。removeItem
:从购物车中删除项目。total
:计算购物车中所有项目的总价值。
注意,为了使这个组件更加可复用,我们将 Item
类定义为一个单独的类,并将其放在组件之外。
然后,在 shopping-cart.component.html
文件中添加以下代码:
-- -------------------- ---- ------- ---- ------------ ---- ------------------ ------------ --------- ------ ------ ---- ------------ ---- ------------------ ------ -------------- ------- ---- ------------- -------------- ----------------- -------------- --------- ----- -------- ------- --- ----------- ---- -- ------- ---------------------- ---------------- - -------------------------- ------------------------- - --------------------------------------------------------- -------- ------------------------------------------------------------------------------