使用 store 和 http 使用 ngFor 进行无限循环

2024-07-03

我的代码有无限循环: 模板:

<ng-container *ngFor="let row of service.dataLoadAsync() | async">

Service:

dataLoadAsync(filters: FinishedCallsFilter = {}): Observable<FinishedCall[]> {
    return this.httpFinishedCallsObservable(Object.assign({limit: this.limit}, {})).flatMap(response => {
        this.store.dispatch(new ReplaceMany(response.items))
        return this.store
    })
}

我也尝试了这个功能的实现:

dataLoadAsync(filters: FinishedCallsFilter = {}): Observable<FinishedCall[]> {
   this.httpFinishedCallsObservable(Object.assign({limit: this.limit}, {}))
        .subscribe(response => this.store.dispatch(new ReplaceMany(response.items)))
    return this.store
}

private httpFinishedCallsObservable(params: { limit: number, tag ?: string }) {
    return this.http.post(this.apiUrl, params)
        .map((json) => this.parseHttp(json))
        .do(response => this.tagStore.dispatch(new UpdateTag(response.tag)))
}

那么,问题来了。没有http请求,evferything就可以了。但后来我尝试下载数据并更新存储,dataLoadAsync函数在循环中调用很多次。 如何修复代码?我想使用存储来缓存


它实际上不是无限循环。

如果您在模板中绑定一个函数,则每次运行 Angular 更改检测时都会调用该函数。

一般来说,这是不好的做法。而是将结果分配给一个字段并绑定到该字段。

constructor() {
  this.data = service.dataLoadAsync();
} 

and

<ng-container *ngFor="let row of service.data | async">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 store 和 http 使用 ngFor 进行无限循环 的相关文章

  • 在 Angular 6 和 ASP.net 中启用 CORS

    我正在尝试从 Angular 6 应用程序向发送电子邮件的 API 发送 POST 请求 我用邮递员测试了该请求并且它有效 但是当我在 Angular 应用程序中执行 POST 请求时 我的控制台中出现错误 我在 Angular 应用程序中
  • Angular 5随着路线的改变而改变元素

    我有一个包含具有某些属性的用户的数组 当用户更改路由时 它应该只显示那些在 url 中放置了某些特定属性的人 现在我只能显示所有地方的所有用户 并且组件似乎没有改变id被改变了 我试过这个 ngOnInit void const id th
  • 如何使用 AngularFire2 使路由守卫等待身份验证

    我希望我的身份验证守卫等到我从 firebase 获取身份验证后才重新路由我 目前 身份验证防护检查首先进行 我需要在 canActivate 中使其异步 或者仅在调用后填充 canActivate auth guard ts import
  • Angular2 属性在类型上不存在

    我正在尝试在登录过程后获取我的连接用户模型 首先 在 CanActivate 防护使用用户 JSON 对象检查本地存储并发现它为 null 后 用户重定向到 login URL 然后用户登录并重定向回根 URL 在连接过程中 我使用 Aut
  • 在 Angular 2 中动态更新 css

    假设我有一个 Angular2 组件 home component ts import Component from angular2 core Component selector home templateUrl app compone
  • 如何在 Angular Material 中将图标放入占位符中?

    我正在尝试将图标放入占位符中 我尝试了这段代码
  • Angular 材质 DatepickerRange 在变化时获取价值

    我有 Angular Material 的 DatePickerRange 我想在更改 DatePicker 中的值时运行一个函数 我尝试使用该函数 更改 但它不起作用 我很乐意为您提供帮助 谢谢你 这是我的html
  • Angular 8滚动到片段,不会将片段带到页面顶部

    我有一个链接 通过单击该链接 我想滚动到页面底部的片段 当我单击链接时 片段正在工作 但不会将其带到页面顶部 我尝试使用带有 id 的 div 和节来创建片段 但是 它不会将 div 或部分带到页面顶部 我的应用程序路由模块中的代码是 im
  • Angular:无法通过路由器传递对象?

    我一直在努力寻找一个简单的解决方案 我有一个显示项目列表的 for 循环 单击其中一项会将您引导至详细组件 我只希望所选项目在详细组件中可用 由于某种原因 没有简单的解决方案 据我所知 我希望会有这样的事情 这就是我想要的 但是 这当然行不
  • ionic2 保持侧面菜单打开

    我正在使用 ionic 2 应用程序左侧有一个离子菜单 当我打开菜单并触摸页面区域时 该菜单会不断关闭 我想让它保持打开状态 并且仅当用户明确命令关闭它时才关闭 通过关闭按钮 或者可能向后滑动 等等 有什么选择或解决方法可以这样做吗 EDI
  • 如何在 IntelliJ 中运行单个量角器测试?

    我开发了一个 Angular 应用程序并使用 Protractor 进行 e2e 测试 在 Intellij 终极版 中 我为我的测试创建了运行 调试配置 如果我想运行所有测试 这很好用 但是我如何才能只运行单个规范文件或单个测试用例呢 我
  • 如何使用 systemjs 在最小的 Angular 2 应用程序中加载 RxJS?

    我无法使用 RxJS 获得最小的 Angular 2 应用程序 我使用 Typescript tsc 1 6 2 和 systemjs 进行模块加载 如何让 systemjs 正确加载 Rx 模块 我已经没有办法尝试了 如果有人指出我做错了
  • 如何在 Typescript 类中创建 Angular 5 HttpClient 实例

    我正在编写一个包含 httpClient 的基类 它用于进行 REST api 调用 如果在构造函数中定义 则 httpClient 变量设置正确 但在私有变量中未定义 这是我的示例代码 Injectable export class My
  • Angular 4 投射http响应的正确方法

    我在 Angular 4 中创建了一个服务 并使用以下代码通过 REST JSON Angular 的新功能 获取数据 界面 export interface IItem Id number Title string Service imp
  • 使用 Visual Studio 在 Mac 上创建新的 Angular 项目

    我目前正在经历一个https channel9 msdn com Events Visual Studio Visual Studio 2017 Launch WEB 103关于在 Mac 上使用 Visual Studio 设置 Spa
  • Angular 2 中的提交与 ngSubmit

    为了在 Angular 2 中提交表单 我们可以使用表单的 submit 或 ngSubmit 事件
  • Angular Service Worker 在不支持的浏览器上

    Angular 团队做得非常出色 并在版本 5 中引入了 Service Worker 支持 文档 https angular io guide service worker intro非常有帮助 在阅读相关文章后我真的可以看到这些事情是如
  • 无法在角度2中实现PUT请求,出现错误“不允许空值”

    我已经在我的应用程序中实现了 GET 请求 并且能够在账户组件 当我单击中的特定行时DataGrid 我得到一个POPUP我可以在其中访问 row data 的窗口 并使用下拉菜单可以更新 DataGrid 但是 当我为下拉列表选择所需的值
  • 如何根据对象属性字符串过滤“ngFor”循环内的项目

    我需要过滤里面的项目ngFor循环 通过更改下拉列表中的类别 因此 当从列表中选择特定类别时 它应该只列出包含该相同类别的项目 HTML 模板
  • 如何在角度4中使用addHTML

    我试图在 Angular 中使用 jspdf 库的 addHTML 函数 并且已经安装了 html2Canvas 但出现错误 这是我的 demo component ts 文件 import Component OnInit ViewChi

随机推荐

  • 将属性默认值注入第 3 方 Vue 组件

    我在我的项目中使用日期选择器组件 基本用法是这样的 date picker language fr v model date 每次我们需要使用日期选择器时 都会重复有几个属性 language例如 所以我希望能够在需要日期选择器时简单地做到
  • 如何获取烧瓶中请求的到达时间戳

    我有一个普通的 Flask 应用程序 只有一个线程来处理请求 有许多请求同时到达 他们排队等待处理 如何获取每个请求在队列中的等待时间 from flask import Flask g import time app Flask name
  • Java 8 - 重试方法,直到满足条件(间隔)

    我想创建一个类 它可以运行一个方法 直到满足有关返回值的条件 它应该看起来像这样 methodPoller poll pollDurationSec pollIntervalMillis method dog bark until dog
  • 无法使用 useRef 作为 componentDidUpdate 替代品

    Error 未捕获的类型错误 Object 不是函数 import useSelector useDispatch useRef from react redux const mounted useRef useEffect gt cons
  • 基于 R 中的日期/时间范围连接数据

    我有一个文件 位置 其中包含 x y 坐标和日期 时间标识 我想从第二个表 天气 获取信息 该表具有 相似 的日期 时间变量和协变量 温度和风速 诀窍是两个表中的日期 时间数字并不完全相同 我想选择的天气数据是closest从位置数据 我知
  • 在单个查询中进行分组、排序和计数

    我试图GROUP SORT and COUNT在单个查询中 我的表之一名为 商品 这是我的简化MySql table family sub family name detailed name Agro Grains Wheat Wheat
  • matplotlib:通过迭代相关的灰度对线图进行着色

    这里相对编程新手来说 我很难弄清楚如何在一系列迭代中绘制插值函数 随着迭代索引的增加 绘图将从黑色逐渐变为浅灰色 例如 import numpy as np import matplotlib pyplot as plt from scip
  • 通过 Jython 使用/创建 Python 对象

    HI 假设我有一个 Java 接口 B 类似这样 B java public interface B String FooBar String s 我想将它与继承 B 的 Python 类 D 一起使用 就像这样 D py class D
  • 如何让 Android 服务每隔几秒广播一次意图?

    如果我创建了一个服务 如何让它每 X 秒广播一次意图 我记得看到过一段代码 startThreadDelayed new Thread public void run doStuff sendBroadcast messageIntent
  • Firefox WebExtension - 如何获取和修改跨域iframe的内容

    我想知道如何在 Firefox WebExtension 中访问和修改 JavaScript 中的跨域 iframe 的内容 我了解普通 JavaScript 的局限性 并且修改跨域 iframe 将是一个 XSS 漏洞 但我相信有一些方法
  • 在 Nothing 上调用任何方法

    虽然它没有明确说明 https kotlinlang org api latest jvm stdlib kotlin nothing htmlNothing 是所有类型的子类型 这 除其他外 表明 fun f x Float fun g
  • 如何在 C# 中以编程方式创建 Microsoft Access 数据库?

    如果 Microsoft Access 数据库文件尚不存在 如何在 C 中创建它 最简单的答案是嵌入一个空的 mdb accdb文件写入您的程序并将其写入磁盘 正确的答案是将 COM Interop 与 ADOX 库一起使用 var cat
  • 按 id 和范围条件删除行?

    我一直在寻找一种通过范围条件删除具有相同ID的项目的方法 Table DeleteItem 的重载似乎都不采用范围条件 而仅采用范围 是否有其他方法可以删除所有超过一小时的条目 我不想检索所有匹配的哈希键行并通过特定范围键手动删除每一行 我
  • 如何在存储过程内部调用存储过程?

    我正在 SQL Server 2008 中定义一种用户定义的表类型 这是代码 CREATE TYPE dbo PayElementTable AS TABLE EffDate varchar 30 NULL PayEle varchar 5
  • 桌面软件开发选项

    来自一个陷入网络世界的程序员 目前用于桌面应用程序开发的最常见的桌面开发 框架 是什么 为 Windows 和 OS X 编写桌面软件现实吗 使用相同的基本代码为具有部分 Web UI 和桌面 UI 的应用程序编写业务 数据层是否现实 是的
  • HTTP 摘要式身份验证

    我想将 HTTP 摘要身份验证与存储用户名和加密密码的中央数据库结合使用 这些数据应该由不同的服务器使用 例如 Apache httpd 或 Tomcat 客户端将是使用浏览器和其他应用程序以 RESTful 方式进行通信的人类 据我了解
  • 如何在高度分布式环境下将数据附加到 Riak 密钥?

    使用 Riak 我想按顺序附加数据 这样我就可以获取我不时附加的所有数据 想想日志 如果我选择增量日志行并将它们传输到 riak 在某些时候我想重新构建我附加的所有内容 我想通过为此目的创建一个新存储桶 然后添加由序列号或日期时间戳定义的键
  • 通过外部拖放将事件添加到 Fullcalendar 时,项目无法获取 id

    我正在使用 FullCalendar 的外部拖放和他的代码 http arshaw com js fullcalendar 1 5 2 demos external dragging html http arshaw com js full
  • 无法单击 Selenium IDE 中弹出窗口上的按钮

    我正在尝试单击弹出窗口上的按钮 该按钮是从 Selenium IDE 中的另一个弹出窗口打开的 我在第二个弹出窗口中运行命令没有问题 即我可以搜索并选择奖项 但是当我尝试单击 添加 按钮时没有任何反应 如果该步骤记录在 IDE 中 则会显示
  • 使用 store 和 http 使用 ngFor 进行无限循环

    我的代码有无限循环 模板