首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用ngFor在angular中获取和显示ngrx存储数据

在Angular中使用ngFor来获取和显示NgRx存储数据的步骤如下:

  1. 安装NgRx:首先,在你的Angular项目中安装NgRx,可以通过运行以下命令来安装:
  2. 安装NgRx:首先,在你的Angular项目中安装NgRx,可以通过运行以下命令来安装:
  3. 创建状态(State):定义一个状态(State)来存储你的数据。你可以在一个名为state.ts的文件中创建一个状态类,其中包含你需要存储的数据。
  4. 创建动作(Actions):定义一个动作(Actions)类来描述你的应用中可能发生的事件。你可以在一个名为actions.ts的文件中创建一个动作类,其中包含各种可能的动作。
  5. 创建减速器(Reducers):定义一个减速器(Reducers)函数来处理你的应用中的动作。你可以在一个名为reducers.ts的文件中创建减速器函数,该函数接收一个初始状态和一个动作,并返回一个新的状态。
  6. 注册存储器(Store):在你的应用的根模块中注册存储器(Store)。你可以在你的根模块的app.module.ts文件中导入StoreModule,并将减速器函数和初始状态传递给StoreModule.forRoot()方法。
  7. 获取和显示数据:在你的组件中,你可以使用select方法来获取存储器中的数据。在模板中使用ngFor指令来遍历数据并显示它们。

下面是一个示例:

在state.ts文件中定义状态类:

代码语言:txt
复制
export interface AppState {
  data: any[];
}

export const initialState: AppState = {
  data: []
};

在actions.ts文件中定义动作类:

代码语言:txt
复制
import { createAction, props } from '@ngrx/store';

export const setData = createAction('[Data] Set Data', props<{ data: any[] }>());

在reducers.ts文件中定义减速器函数:

代码语言:txt
复制
import { createReducer, on } from '@ngrx/store';
import { setData } from './actions';
import { initialState } from './state';

export const dataReducer = createReducer(
  initialState,
  on(setData, (state, { data }) => ({ ...state, data }))
);

在app.module.ts文件中注册存储器:

代码语言:txt
复制
import { StoreModule } from '@ngrx/store';
import { dataReducer } from './reducers';

@NgModule({
  imports: [
    StoreModule.forRoot({ app: dataReducer })
  ]
})
export class AppModule { }

在你的组件中使用存储器和ngFor:

代码语言:txt
复制
import { Component } from '@angular/core';
import { Store, select } from '@ngrx/store';
import { setData } from './actions';

@Component({
  selector: 'app-data',
  template: `
    <ul>
      <li *ngFor="let item of data$ | async">{{ item }}</li>
    </ul>
    <button (click)="setData()">Set Data</button>
  `
})
export class DataComponent {
  data$ = this.store.pipe(select(state => state.app.data));

  constructor(private store: Store) {}

  setData() {
    const data = [1, 2, 3]; // 从某个地方获取你的数据
    this.store.dispatch(setData({ data }));
  }
}

在上述示例中,我们创建了一个名为data的状态属性,定义了一个setData的动作,创建了一个dataReducer的减速器函数,并在根模块中注册了存储器。在组件中,我们使用select方法来获取存储器中的数据,并使用ngFor指令遍历和显示数据。当点击"Set Data"按钮时,我们使用dispatch方法分发一个setData动作来更新数据。

关于腾讯云相关产品和产品介绍链接地址,可以在腾讯云官网上查找相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

以下是Angular如何知道如何找到与我们的标签相对应的组件。显然,templateUrl并且styleUrls定义Angular应该从哪里获取我们的标记CSS。...banana,或者ngModel是一个Angular指令,它负责从事件所有那些获取价值。...我们可以使用诸如ngrx-store-localstorage之类的东西来存储我们的数据到浏览器的localStore,但是如何使用API​​呢?...我们还需要case cards.ADD:从我们的减速器删除分支。让我们尝试一下: ? 出于某种原因,我们卡片添加操作获取重复的数据。让我们试图找出原因。...当我们从订阅获取数据时,您只需要实现该Remove效果。但我会把它留给你。 路由模块 我们来谈谈我们的应用程序组合。

42.6K10

Angular 接入 NGRX 状态管理

存储的状态做出相应的改变; Selector:用于获取存储状态切片的纯函数; Effects:基于流实现的副作用的处理,以减少基于外部交互的状态。...ng new angular-ngrx --standalone=false 安装 NGRX 核心模块: @ngrx/store:状态管理核心模块,包含了状态存储、Actions、Reducers、Selectors...Angular 进行整合使用; 安装命令: npm install @ngrx/store --save npm install @ngrx/store-devtools --save npm install...,更新用户数据接下来的副作用编写中会体现: import { createActionGroup, emptyProps, props } from '@ngrx/store'; export const...Todo 进行添加、更新、删除、批量添加、批量更新、批量删除、清空等操作,还可以通过其内置的 Selector 方便的获取 Todos 数据数据的长度等等信息,可以简化一大部分的开发时间。

21810

Angular 2 + 折腾记 :(3)初步了解服务及使用

前言 不探究高深理论,只探究实际使用,有更好的写法或者经验请指出; 有些暂时没涉及到的知识我可能会顺着例子解释; ---- 什么是服务 简言之:就是资源获取,以及通讯逻辑处理的地方; Angular2...这可能每个人的开发理念不一样。。举一个例子,看代码。...this.authHttp.post(environment.baseUrl + 'VehicleFault/ClearFault', data); } // 这里的每个接口返回一个可观察的订阅对象 }复制代码 那么我们应该如何让服务可以正常使用呢...BrowserModule,其他一些模块需要用到一些内置指令(*ngIf,*ngFor这些的)必须引入这个 -- 内置 import { CommonModule } from '@angular...vehicleFaultService: any) // 这样就可以使用了,且components内不需要引入对应的服务!!!!

1.6K20

React中使用ajax获取数据移动浏览器显示问题

在做的一个小项目,页面加载后使用ajax读取本地REST数据,保存在状态,稍后form的选择下拉框显示,代码如下: 150 componentDidMount() { 151...、火狐浏览器访问,数据都能加载,在手机端使用谷歌浏览器访问,选择下拉框始终为空,这说明手机端浏览器ajax获取数据时出了问题。...,即在页面加载完成后才执行某个函数,如果函数要操作 DOM,页面加载完成后再执行会更安全,所以使用 jQuery 时这样的写法很常见。...dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时ready效果一样。...可能的原因是手机端刘览器与电脑端浏览器页面加载处理脚本时间不同,前者是未等页面加载结束即执行jquery脚本,后者则相反,所以后者不需$(function(){}也可正常显示

5.9K20

AngularDart4.0 指南- 显示数据

您可以通过将HTML模板的控件绑定到Angular组件的属性来显示数据。 在这个页面,您将创建一个包含英雄列表的组件。 您将显示英雄名单的列表,并有条件地列表下方显示一条消息。...它应该显示标题英雄的名字: ? 模板内嵌或模板文件? 您可以将组件的模板存储两个地方之一。...模板中使用任何Angular指令之前,您需要将它们列组件的@Component注解的指令参数。...它正在添加删除DOM的段落元素。 这可以提高性能,特别是大型项目中,当有条件地包含或排除大量的HTML与许多数据绑定。 试试看。 由于列表中有四个项目,所以应该显示消息。...回到app_component.dart并删除或注释掉英雄列表的一个元素。 浏览器应该自动刷新,消息应该消失。 概要 现在你知道如何使用: 用双花括号插入来显示组件属性。 ngFor显示项目列表。

5.3K10

如何使用DNSSQLi从数据获取数据样本

泄露数据的方法有许多,但你是否知道可以使用DNSSQLi从数据获取数据样本?本文我将为大家介绍一些利用SQL盲注从DB服务器枚举泄露数据的技术。...最近的一个Web应用测试,我发现了一个潜在的SQLi漏洞。使用Burp的Collaborator服务通过DNS交互最终我确认了该SQL注入漏洞的存在。...我尝试使用SQLmap进行一些额外的枚举泄露,但由于SQLmap header的原因WAF阻止了我的请求。我需要另一种方法来验证SQLi并显示可以从服务器恢复数据。 ?...之前的文章,我向大家展示了如何使用xp_dirtree通过SQLi来捕获SQL Server用户哈希值的方法。这里我尝试了相同的方法,但由于客户端防火墙上的出站过滤而失败了。...在下面的示例,红框的查询语句将会为我们从Northwind数据返回表名。 ? 该查询你应该已经注意到了有2个SELECT语句。

11.5K10

angular知识点梳理第二篇-基本语法

文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍如何创建一个angular项目,这一篇主要梳理一些...,但是angular我们引入框架的一个核心模块FormsModule才可以,该指令就是将数据驱动视图的改变!...app.modules.ts引入forms模块 // 核心模块 import { NgModule } from '@angular/core'; //引入forms模块实现数据的双向绑定 import...-- 使用{{}}进行数据获取 --> {{inputData}} 运行效果 NgFor NgFor和我们js的for循环渲染数据是一致的,所以这里是比较容易理解的,简单的演示一下...{{item.id}} 运行效果 NgIf NgIf指令是可以控制页面元素的显示与消失,这里隐藏要区别开,他的效果css的display:none效果是一致的,visibility

2.5K30

Angular 6.x 指令快速入门

(图片来源于网络) 第一节 - 创建指令 Angular ,我们可以使用 HostBinding 装饰器,实现元素的属性绑定。...>Hello, Angular `, }) export class AppComponent { } 第三节 - 事件处理 Angular ,我们可以使用 HostListener...>Hello, Angular `, }) export class AppComponent { } 第四节 - 获取宿主元素属性值 Angular ,我们可以通过 Attribute... Angular ,我们可以通过 ViewChild 装饰器来获取视图中定义的模板元素,然后利用 ViewContainerRef 对象的 createEmbeddedView() 方法,创建内嵌视图...let item index as i 会被转换为 let-item let-i="index" ngFor 指令列表上循环,每个循环中都会设置重置它自己上下文对象上的属性。

3.2K40

AngularDart 4.0 高级-结构指令 顶

三种常见的内置结构指令 - NgIf,NgForNgSwitch ... - 模板语法指南中进行了描述,并在整个Angular文档的示例中进行了介绍。...指南描述如何将指令应用于HTML模板的元素时引用了属性(attribute)名称。 还有其他两种Angular指令,在其他地方被广泛描述:(1)组件(2)属性指令。...Angular实际渲染过程消耗了内容,并用诊断注释替换了。 NgForNgSwitch ...指令遵循相同的模式。...当你编写自己的结构指令时,可以使用这些微观语法机制。 研究NgIfNgFor的源代码是了解更多信息的好方法。 模板输入变量 模板输入变量是一个变量,其值可以模板的单个实例引用。...没有合适的宿主元素时使用作为分组元素。 Angular将星号(*)语法解析为。 NgIf,NgForNgSwitch内置指令如何工作。

16K20

AngularDart4.0 指南- 模板语法二 顶

以前缀类开始,可选地跟一个点(.)一个CSS类的名字替代括号内的元素属性:[class.class-name]。 以下示例显示如何使用class绑定来添加删除应用程序的“special”类。...NgModel - 与[(ngModel)]形成元素的双向绑定 开发数据输入表单时,通常都会显示数据属性,并在用户进行更改时更新该属性。 使用NgModel指令进行双向数据绑定使得这一切变得简单。...如何从输入框中提取当前显示的文本,以便更新数据属性? 谁想每一次都看看? 该ngModel指令隐藏了自己的ngModel输入属性ngModelChange输出属性背后的这些繁重的细节。...NgFor NgFor是一个迭代指令 - 一种呈现项目列表的方式。 您可以定义一个HTML块来定义应该如何显示单个项目。 您告诉Angular将该块用作呈现列表每个项目的模板。...Angular把这条指令翻译成一个围绕宿主元素的,然后重复使用这个模板为列表的每个英雄创建一组新的元素绑定。 “结构指令”指南中了解微语法。

29.9K20

如何使用Vue.jsAxios来显示API数据

熟悉JSON数据格式,您可以JavaScript中了解如何使用JSON来了解更多信息。 熟悉向API发出请求。 有关使用API​​的综合教程,请参阅如何在Python3使用Web API 。...这就是Vue如何让我们UI声明性地呈现数据。 我们来定义这些数据。...如果您现在在Web浏览器中加载页面,您将看到显示的新条目: 一旦我们以编程方式处理数据,我们不需要手动标记添加新列。 现在让我们获取真实数据。...第4步 - 从API获取数据 现在是时候用来自cryptocompare API的实时数据替换我们的模拟数据,以美元欧元的形式在网页上显示比特币以太坊的价格。...为了提出请求,我们将Vue的mounted()函数与Axios库的GET函数结合使用获取数据并将其存储数据模型的results数组

8.7K20

Angular 显示英雄列表

本页面,你将扩展《英雄指南》应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息。 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示。...最终,你会从远端的数据服务器获取它。但是目前,你需要创建一些模拟英雄(some mock heroes),并假设这些数据是从远程服务器上获取的。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义的那个。...英雄们显示列表,并且所点英雄的详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在时才显示所选英雄的详情。...你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

4.4K70

Angular 2 数据显示

本章节我们将为大家介绍如何数据显示到用户界面上,可以使用以下三种方式: 通过插值表达式显示组件的属性 通过 NgFor 显示数组型属性 通过 NgIf 实现按条件显示 ---- 通过插值表达式显示组件的属性...以下代码基于 Angular 2 TypeScript 环境配置 来创建,你可以该章节上下载源码,并修改以下提到的几个文件。...app/app.component.ts 文件: import { Component } from '@angular/core'; @Component({ selector: 'my-app'...会自动从组件中提取 title mySite 属性的值,并显示浏览器显示信息如下: 使用 ngFor 显示数组属性 我们也可以循环输出多个站点,修改以下文件: app/app.component.ts...{{title}} 我喜欢的网站: {{mySite}} 网站列表: <li *ngFor="let site

2.4K20

Angular 6.x 基础教程

第三节 - 事件模板引用 Angular ,我们可以使用 (eventName) 语法,进行事件绑定。此外,可以使用 #variableName 的语法,定义模板引用。...第四节 - 事件进阶 获取鼠标事件 第三节的示例,假如我们需要获取鼠标事件,那应该怎么办呢?...ngFor 指令 Angular 我们可以使用 ngFor 指令来显示数组每一项的信息。...上面示例,我们使用 [(ngModel)]="message" 语法实现数据的双向绑定。该语法也称作 Banana in the Box 语法,即香蕉盒子里 (比较形象生动,记忆该语法)。 ?...第十节 - 组件样式 Angular ,我们可以设置组件元数据时通过 styles 或 styleUrls 属性,来设置组件的内联样式外联样式。

15.6K20

前端框架与库 - Angular基础:组件、模板、服务

'; }}模板Angular 的模板语言允许你 HTML 嵌入 TypeScript 表达式,使用插值表达式、属性绑定、事件绑定等语法糖。...插值表达式:{{ expression }},用于显示组件类数据。属性绑定:[property]="expression",用于绑定组件类的属性到元素的属性。...事件绑定:(event)="function()",用于绑定组件类的方法到元素的事件。服务服务是 Angular 中用于封装业务逻辑的类,通常用于数据获取、状态管理等。...性能问题undefined过度使用ngForngIf可能导致不必要的渲染。优化这些指令的使用,例如,使用TrackBy函数减少重复渲染。...如何避免这些问题使用事件发射器undefined父子组件之间使用事件发射器进行通信,避免直接访问。性能优化undefined对于大型列表,使用虚拟滚动技术来提高性能。

12710

Angular 快速学习笔记(1) -- 官方示例要点

Angular 的复写器(repeater)指令,使用let xx of xxs遍历 绑定click使用 (click) <li *ngFor="let hero of heroes" (click...组件不应该直接获取或保存数据,它们不应该了解是否展示假数据。 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务 b. 服务负责业务数据获取保存,让组件只需要关注展示 c....把它标记为一个 HeroService 的注入点 ngOnInit 调用service获取数据 a. 虽然构造函数也可以调用,但是我们需要让构造函数保持简单,只做初始化操作 b....Angular 的最佳实践之一就是一个独立的顶级模块中加载配置路由器,它专注于路由功能,然后由根模块 AppModule 导入它 b. ng generate module app-routing...添加路由 ,路由定义 会告诉路由器,当用户点击某个链接或者浏览器地址栏输入某个 URL 时,要显示哪个视图,因此路由包含两个属性: i. path:一个用于匹配浏览器地址栏 URL 的字符串

3.7K50

Angular 快速学习笔记(1) -- 官方示例要点

Angular 的复写器(repeater)指令,使用let xx of xxs遍历 绑定click使用 (click) <li *ngFor="let hero of heroes" (click...组件不应该直接获取或保存数据,它们不应该了解是否展示假数据。 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务 b. 服务负责业务数据获取保存,让组件只需要关注展示 c....把它标记为一个 HeroService 的注入点 ngOnInit 调用service获取数据 a. 虽然构造函数也可以调用,但是我们需要让构造函数保持简单,只做初始化操作 b....Angular 的最佳实践之一就是一个独立的顶级模块中加载配置路由器,它专注于路由功能,然后由根模块 AppModule 导入它 b. ng generate module app-routing...添加路由 ,路由定义 会告诉路由器,当用户点击某个链接或者浏览器地址栏输入某个 URL 时,要显示哪个视图,因此路由包含两个属性: i. path:一个用于匹配浏览器地址栏 URL 的字符串

3.6K00

Angular 显示英雄列表

本页面,你将扩展《英雄指南》应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息。 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示。...最终,你会从远端的数据服务器获取它。但是目前,你需要创建一些模拟英雄(some mock heroes),并假设这些数据是从远程服务器上获取的。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义的那个。...英雄们显示列表,并且所点英雄的详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在时才显示所选英雄的详情。...你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

4K30
领券