如何创建一个数据交互的Angular应用程序?这个工具不要错过!(一)

news2024/11/22 15:59:52

当我们构建带有数据的应用程序时,需要为客户提供排序、分组、过滤和聚合数据等选项,以便与之交互。我们可以通过多种途径实现这一目标:

  • 使用内置的Array对象——它提供了过滤器、排序方法和reduce等用于分组和聚合的功能。
  • 使用Kendo UI for Angular强大的数据查询功能——它提供了一系列方便且对开发人员友好的功能,帮助我们处理数据操作,比如排序、过滤、分组和聚合。

因为我们已经了解了JavaScript,所以在本文中将使用内置的Array方法。对于大多数开发人员来说,这是一个很好的选择。

PS:给大家推荐一个实用组件~Kendo UI for Angular是专业级的Angular UI组件库,不仅是将其他供应商提供的现有组件封装起来,telerik致力于提供纯粹高性能的Angular UI组件,而无需任何jQuery依赖关系。无论您是使用TypeScript还是JavaScript开发Angular应用程序,Kendo UI for Angular都能为Angular项目提供专业的、企业级UI组件。

Kendo UI for jQuery新版下载(Q技术交流:726377843)

首先,让我们学习一下数组方法:

内置数组方法

Array对象提供了排序和过滤操作的方法,但是对于分组和聚合数据,我们需要使用reduce()方法,分别解释一下:

数组的sort()方法返回排序后的数组。默认情况下,它按字母和升序将元素作为字符串排序,我们必须提供一个比较函数来按自定义顺序对元素进行排序。

filter()方法返回一个新数组,其中只包含通过所提供函数实现测试的元素。

reduce()方法帮助我们进行分组和聚合:

  • 对于分组,它接受一个累加器函数并遍历数组,返回一个对象,该对象对数组中的每个唯一值都有键,对应的值是与键匹配的元素数组。
  • 对于聚合,它采用一个累加器函数,该函数跟踪运行总数或任何其他聚合值。它调用数组中的每个元素,结果是最终的累积值。

因为我们已经知道这些方法,所以将解决下面的场景,并找到复杂和高级主题的限制。

场景

我们所在的公司想要一个带有产品列表的Angular应用,用户希望对数据进行过滤、分组、排序和聚合,经理想要尽快发布所有这些功能。

构建项目

开始使用Angular CLI构建项目,您可以使用以下命令安装它:

npm install -g @angular/cli

安装好Angular CLI后,运行以下命令创建项目:

ng new angular-play-with-data

当被Angular CLI提示是否要添加路由时,选择“No”。另外,选择“CSS”作为首选样式表格式。

如何创建一个数据交互的Angular应用程序

现在我们的应用程序已经创建好了,导航到目录:

cd angular-play-with-data

继续删除app.component.html中的示例标记和以下标记:

<h1>Working With Data in Angular</h1>

打开app.component.ts,用示例数据添加属性product:

products = [
{
"id": 1,
"name": "Product 1",
"category": "Category A",
"description": "Description of product 1",
"price": 9.99
},
{
"id": 2,
"name": "Product 2",
"category": "Category B",
"description": "Description of product 2",
"price": 19.99
},
{
"id": 3,
"name": "Product 3",
"category": "Category A",
"description": "Description of product 3",
"price": 29.99
},
{
"id": 4,
"name": "Product 4",
"category": "Category C",
"description": "Description of product 4",
"price": 39.99
},
{
"id": 5,
"name": "Product 5",
"category": "Category B",
"description": "Description of product 5",
"price": 49.99
},
{
"id": 6,
"name": "Product 6",
"category": "Category A",
"description": "Description of product 6",
"price": 59.99
},
{
"id": 7,
"name": "Product 7",
"category": "Category C",
"description": "Description of product 7",
"price": 69.99
},
{
"id": 8,
"name": "Product 8",
"category": "Category B",
"description": "Description of product 8",
"price": 79.99
},
{
"id": 9,
"name": "Product 9",
"category": "Category A",
"description": "Description of product 9",
"price": 89.99
},
{
"id": 10,
"name": "Product 10",
"category": "Category C",
"description": "Description of product 10",
"price": 99.99
}
]

基本的设置完成了,接下来我们创建一个组件来呈现产品列表。

产品列表

在Angular CLI中,我们将使用-t标志为内联模板创建list-products组件,通过运行以下命令来防止创建html文件:

PS C:\Users\dany.paredes\Desktop\angular-play-with-data> ng g c -t list-products
CREATE src/app/list-products/list-products.component.spec.ts (642 bytes)
CREATE src/app/list-products/list-products.component.ts (229 bytes)
CREATE src/app/list-products/list-products.component.css (0 bytes)

用Input()装饰器添加属性products,这样我们就可以从app.component.ts中获取产品列表,并使用ngFor和插值添加模板。

import { Component, Input } from '@angular/core';
@Component({
selector: 'app-list-products',
template: `
<div *ngFor="let item of products">
<h3>{{ item.name }}</h3>
<p>{{ item.description }}</p>
<span>{{ item.price | currency }}</span>
</div>
`,
})
export class ListProductsComponent {
@Input() products: any;
}

在app.component.html中,使用app-list-products来显示产品列表。

<h2>All Products</h2>
<app-list-products [products]="products"></app-list-products>

保存更改并使用ng -serve -o运行应用程序来自动打开浏览器。

如何创建一个数据交互的Angular应用程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/911202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot内嵌Tomcat连接池分析

文章目录 1 Tomcat连接池1.1 简介1.2 架构图1.2.1 JDK线程池架构图1.2.2 Tomcat线程架构 1.3 核心参数1.3.1 AcceptCount1.3.2 MaxConnections1.3.3 MinSpareThread/MaxThread1.3.4 MaxKeepAliveRequests1.3.5 ConnectionTimeout1.3.6 KeepAliveTimeout 1.4 核心内部线程1.4.1 …

MYSQL 统计停车时长百分比

SELECTCOUNT(*) AS 数量,subquery.total_count AS 总数,COUNT(*) * 100 / subquery.total_count AS 百分比,CASEWHEN park_long < 900 THEN 15分钟以内WHEN park_long > 900 AND park_long < 3600 THEN 15-60分钟WHEN park_long > 3600 AND park_long < 10800 T…

【Java 高阶】一文精通 Spring MVC - 视图解析(三)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

前端轻松实现文件预览(pdf、excel、word、图片)

需求&#xff1a;实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍&#xff1a;支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能&#xff0c;建议以下的预览文件标签可以在外层包裹一层弹窗。 图片预览 iframe标签能够将另一个HTML页面嵌入到…

【第16例】IPD开发流程:横向管理工具之袖珍卡

目录 前言 袖珍卡 作者介绍 相关课程 前言 IPD 本身是一个非常庞杂的体系&#xff0c;几乎涵盖了企业的方方面面。 不仅仅是华为&#xff0c;包括一些引入 IPD 的新星科技企业。 他们对 IPD 的引入也是走了先僵化再优化的一个过程。 比如说开始的阶段全盘照抄走流程&…

Android设置顶部状态栏颜色

Android设置顶部状态栏颜色_wx637304bacd051的技术博客_51CTO博客

[C++]笔记-重要知识点合集

一.静态库的创建 在项目属性c/c里面,选用无预编译头,创建头文件与cpp文件,需要注意release模式下还是debug模式,在用库时候要与该模式相匹配,库的函数实现是外界无法看到的,最后在要使用的项目里面导入.h文件和.lib文件 二.使用一个循环给二维数组赋值 行数 : 第几个元素 / …

Android Studio 中flutter配置,VSCODE 中flutter配置

一、Android Studio 环境配置 1)确保已经下载了ANdroid SDK,可以点开Android Studio点开setting在这个地方查看 2)打开环境配置变量 新增环境变量ANDROID_HOME 3)将以下添加到环境变量Path中 4&#xff09;命令行里面输入adb,出现以下信息代表android 环境已经配置好了。 …

皮克全景图

公司门头照 办公场所 生产环境 仓储区域 样品展厅 样品展厅 样品展厅 样品展厅

C#-Tolewer和ToUpper的使用

目录 简介: 好处:​ 过程: 总结&#xff1a; 简介: 字符串是不可变的&#xff0c;所以这些函数都不会直接改变字符串的内容&#xff0c;而是把修改后的字符串的值通过函数返回值的形式返回。 ToLower和ToUpper是字符串处理函数&#xff0c;用于将字符中的英文字母转换为小…

【ES6】—函数的参数

一、参数的默认值 1. ES5 设置默认值 function foo (x, y) {y y || worldconsole.log(x, y) } foo(hello, xiaoxiao) foo(hello, 0) // hello xiaoxiao // hello worldPS&#xff1a; 使用 || 的方式设置默认值不严谨&#xff0c; 0、undefined、‘’ 这些参数都会被判定为f…

k8s service (三)

K8s service (三) LoadBalancer类型的Service LoadBalancer和NodePort其实是同一种方式&#xff0c;目的都是向外暴露一个端口&#xff0c;区别在于LoadBalancer会在集群的外部再来做一个负载均衡设备&#xff0c;而这个设备需要外部环境支持的&#xff0c;外部服务发送到这…

企业使用CRM系统的三大理由

CRM系统是一种管理企业与客户关系的软件&#xff0c;它可以帮助企业提高客户满意度、增加销售收入、优化营销策略。可以说&#xff0c;CRM系统是企业数字化转型&#xff0c;实现可持续发展的重要工具。下面我们来说说&#xff0c;推荐企业使用CRM的原因。 1、了解客户需求 客…

细谈Vue中插槽Slots

细谈Vue中插槽Slots 浅谈Vue中插槽Slots1、默认插槽2、后备内容3、具名插槽4、作用域插槽5、代码实践 浅谈Vue中插槽Slots <slot> 元素是一个插槽出口 (slot outlet)&#xff0c;标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。Vue 组件的插槽机制是受原生…

冠达管理:迎政策利好,数据要素概念爆发,卓创资讯、三维天地等涨停

数据要素概念22日盘中强势拉升&#xff0c;截至发稿&#xff0c;卓创资讯、三维六合“20cm”涨停&#xff0c;深圳瑞捷涨超15%&#xff0c;世纪恒通涨超13%&#xff0c;新炬网络、生意宝亦涨停&#xff0c;中富通涨超8%。值得注意的是&#xff0c;新炬网络已连续两个买卖日涨停…

冠达管理:央行降息是什么意思?央行降息利好什么股票?

为了顺应和刺激经济的发展&#xff0c;央行有时会通过上升和下降利息来平衡。一般降息是在经济不景气的时分调控。那么央行降息是什么意思&#xff1f;央行降息利好什么股票&#xff1f;下面就由冠达管理为我们分析&#xff1a; 央行降息是什么意思&#xff1f; 降息的意思便是…

〔015〕Stable Diffusion 之 模型管理和信息管理插件 篇

✨ 目录 &#x1f388; 模型管理&#x1f388; 添加预览图&#x1f388; 添加详细描述&#x1f388; 模型分组&#x1f388; 下载 Civitai Helper 插件&#x1f388; 插件 Civitai Helper 使用方法 &#x1f388; 模型管理 点击生成按钮下的 显示/隐藏扩展模型 Show/hide extr…

【Terraform学习】使用 Terraform 托管 S3 静态网站(Terraform-AWS最佳实战学习)

使用 Terraform 托管 S3 静态网站 实验步骤 前提条件 安装 Terraform&#xff1a; 地址 下载仓库代码模版 本实验代码位于 task_s3 文件夹中。 变量文件 variables.tf 在上面的代码中&#xff0c;您将声明&#xff0c;aws_access_key&#xff0c;aws_secret_key和区域变量…

人工智能的螺旋式发展历程

人工智能的螺旋式发展历程 人工智能的历史自1956年开始至今&#xff0c;已经有66年的历史。世界人工智能历史可分为三个阶段&#xff0c;从1956年至1976年是人工智能的第一个发展阶段&#xff0c;1976年至2006年是第二个发展阶段&#xff0c;而2006年至今则是人工智能的第三个发…

Spring Boot系统之高可用限流实现解决方案

1.什么是限流 限流是对某一时间窗口内的请求数进行限制&#xff0c;保持系统的可用性和稳定性&#xff0c;防止因流量暴增而导致的系统运行缓慢或宕机。 为什么需要限流 其实限流思想在生活中随处可见&#xff0c;例如景区限流&#xff0c;防止人满为患。热门餐饮需要排队就…