Angular--*ngFor

本文介绍AngularJS中*ngFor指令的基本用法及实例展示,包括如何迭代数组并显示每一项的数据,同时讲解了*ngFor中的特殊属性如first、last等,帮助读者更好地理解和运用这一关键语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

学习AngularJS,有一个语法是必不可少的,就是*ngFor,这篇博客就是对*ngFor总结一下。

内容

在Angular中,我们经常用到*ngFor指令来显示数组中每一项的信息,*ngFor的具体使用语法如下:

<div *ngFor="let product of products | filter:'title': keyword"  class="col-md-4 col-sm-4 col-lg-4">
  <div class="thumbnail">
    <img [src]="imgUrl">
    <div class="caption">
      <h4 class="pull-right">{{product.price}}</h4>
      <h4><a [routerLink]="['/product',product.id]">{{product.title}}</a></h4>
      <p>{{product.desc}}</p>
    </div>
    <div>
      <app-stars [rating]="product.rating"></app-stars>
    </div>
  </div>
</div>


{{product.price}}        查值表达式
<img[src]="imgUrl">      属性绑定

使用*ngFor来更新AppComponent组件


import {Component} from '@angular/core'; 
import {MailService} from "./mail.service"; 
@Component({
  selector: 'app-root',
  template: `
    <h3>{{title}}</h3>
    <ul>
      <li *ngFor="let message of mailService.messages; index as i;">
        {{i}} - {{message}}
      </li>
    </ul>
   }) 
export class AppComponent {
    title = 'Hello, Angular'; 
    constructor(private mailService: MailService) {}
 }

在AppComponent组件的模版中,我们可以使用let sth. of sth.s,的语法迭代数据中的每一项,这样我们可以获得如下值:

first: boolean - 若当前项是可迭代对象的第一项,则返回 true

last: boolean - 若当前项是可迭代对象的最后一项,则返回 true

even: boolean - 若当前项的索引值是偶数,则返回 true

odd: boolean - 若当前项的索引值是奇数,则返回 true

上面简单介绍了*ngFor,我们可以发现Angular中还有好多类是的语法:*ngIf*ngSwitchCase等等,这都是相似的语法。

总结

要学的知识太多,我们需要不断的努力总结,谢谢那些让我们成长的巨人,让我们不断成长。

end

谢谢您的阅读!

### Angular Virtual List 使用指南 #### 安装 `angular-virtual-list` 要使用 `angular-virtual-list`,首先需要安装该库。可以通过 npm 进行安装: ```bash npm install angular-virtual-list --save ``` #### 基本概念介绍 虚拟列表是一种技术,旨在通过只渲染可见区域内的项目来提高性能,从而减少DOM节点的数量并提升滚动体验。 #### 导入模块 在应用中导入 `VirtualListModule` 模块以便可以在组件内使用此功能[^1]。 ```typescript import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; import { VirtualListModule } from 'angular-virtual-list'; @NgModule({ declarations: [ AppComponent, ], imports: [ BrowserModule, VirtualListModule, // 添加这一行以引入虚拟列表模块 ], providers: [], bootstrap: [AppComponent] }) export class AppModule {} ``` #### 创建带有虚拟列表的组件 下面是一个简单的例子展示如何在一个 Angular 组件里实现虚拟列表的功能: ```html <!-- app.component.html --> <virtual-scroller #scroller [items]="bigArray"> <div *ngFor="let item of scroller.renderedItems" style="height:50px;"> {{item}} </div> </virtual-scroller> ``` ```typescript // app.component.ts import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html' }) export class AppComponent implements OnInit { bigArray = Array.from({ length: 1000 }, (_, i) => `Item ${i}`); ngOnInit(): void {} } ``` 这段代码展示了如何设置一个拥有大量数据项的大数组,并将其绑定给 `<virtual-scroller>` 元素作为其 items 属性。注意这里的 `*ngFor` 是用来遍历由 `scroller.renderedItems` 返回的实际显示的数据子集而不是完整的 `bigArray`. #### 配置选项说明 - **items**: 数据源数组。 - **approximateItemSize**: 单个项目的估计大小,默认值为 50 px;如果已知确切高度,则可以指定更精确的高度。 - **bufferAmount**: 缓冲区中的额外条目数量,即提前加载的内容量。 以上配置可以帮助开发者更好地控制虚拟列表的行为和表现形式.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值