Angular 2 - 当(observableData | async)尚未解析时显示加载信息

2024-03-10

正如标题所说,我想拥抱 rxjs Observables 的力量。

我现在应该做什么:

// dataview.html
<div *ngIf="isLoading">Loading data...div>
<ul *ngIf="!isLoading">
    <li *ngFor="let d of data">{{ d.value }}</li>
</ul>


// dataview.ts

data: any[] = [];
isLoading: boolean = false;

getData() {

this.isLoading = true;
this._api.getData().subscribe(
        data => {
            this.data = data;
            this.isLoading = false;
        },
        error => {
            this.error = error;
            this.isLoading = false;
        });
}

我想做的事:

1. Use async我的模板中的管道

  1. Make data可观察数组

  2. 仍然为用户显示加载信息

我是干净代码的忠实粉丝,那么如何使用 rxjs 和 Angular 2 很好地完成此任务呢?


我就是这样做的。我也用$在变量名的 和 处提醒我它是一个流。

// dataview.html
<div *ngIf="isLoading$ | async">Loading data...</div>
<ul *ngIf="!(isLoading$ | async)">
    <li *ngFor="let d of data">{{ d.value }}</li>
</ul>


// dataview.ts

data: any[] = [];
isLoading$: BehaviorSubject<boolean> = new BehaviorSubject(false);

getData() {

this.isLoading$.next(true);

this._api.getData().subscribe(
        data => {
            this.data = data;
        },
        error => {
            this.error = error;
        },
        complete => {
            this.isLoading$.next(false);
        });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 - 当(observableData | async)尚未解析时显示加载信息 的相关文章

随机推荐

  • main 的 ret 指令去哪里了

    我在 Programming from ground up 一书中了解了汇编 x86 如何在全球范围内工作 在本书中 每个程序都以退出中断调用结束 然而 在C编译的程序中 我发现程序以ret结尾 这假设有一个地址要弹出 这将导致程序结束 所
  • TYPO3 Extbase如何清空ObjectStorage

    我想在更新对象时 清空 ObjectStorage 它是 TYPO3 4 6 带有 Extbase 扩展 允许您在前端显示 添加 编辑 删除数据集 乍一看一切看起来都不错 我有一个字段引用另一张表 TCA partner gt array
  • Fortran 77 续行[重复]

    这个问题在这里已经有答案了 所以我必须用 fortran77 和 f 文件扩展名编写这个程序 并且我不想使用选项来编译它 我想修复该错误 但由于某种原因 我尝试过的所有操作仍然给我这个错误 我已经包含了代码和错误终端输出 程序 p1 隐式无
  • Android getActivity() 在片段内总是返回 null

    我遇到了一个奇怪的问题 getActivity 方法always在片段内返回 null 我在 onAttach 和 onCreateView 完成运行后调用它 该片段位于包含片段堆栈的 FragmentActivity 内 我向其中添加片段
  • 上传的图片仅在刷新页面后可用

    当我上传图片时 文件保存成功 路径设置成功 但表单提交后上传的图像并没有立即显示 仅当我重新加载页面时 才会显示上传的图像 我正在保存上传的文件 如下所示 InputStream is try File file new File C Do
  • 未找到 CodeIgniter 对象,仅索引函数有效

    我是 CodeIgniter 的新手 一切都很顺利 直到我发现我只能打电话给index 功能 我已经设置了config php autoload php and routes php正如预期的那样 在 config php 上 config
  • 从 .eml 文件获取文本的最佳方法是什么?

    我尝试从本地驱动器上的几个 eml 文件获取主题和消息正文 现在我尝试使用 Apache Commons Email 但有时它会循环且没有错误 这是我的代码 它应该从 eml 获取文本并将其保存到 txt MimeMessage mimeM
  • 如何修复 x86 Turbo 汇编语言的输出

    DOSSEG MODEL SMALL STACK 100h DATA UserName db Name CLRF db 10 13 inputName db 24 dup CurYear db Current Year inputCurre
  • GWT java.util.Date 序列化错误

    GWT 无法正确序列化 Java 日期 当我尝试通过网络发送用 Javascript 创建的日期时 我发现 1983 年之前的年份中 4 月 1 日 有趣 到 10 月 25 日之间的日期会减去一天 这意味着 例如 1982 04 01 和
  • Databricks 删除增量表?

    如何在 Databricks 中删除增量表 我在文档中找不到任何信息 也许唯一的解决方案是使用 magic 命令或 dbutils 删除文件夹 delta 内的文件 fs rm r delta mytable EDIT 为了澄清起见 我在这
  • 如何在 Mobile Safari 中检测 3G 与 Wifi 连接?

    我特别询问的是移动网页上的 javascript 而不是 Objective C 应用程序 是否有像 Apple Reachability for javascript 这样的东西 以便我可以知道 Edge 3G 或 Wifi 连接何时建立
  • 如何从 cognito 异步函数返回响应并将其显示在页面上?

    给出下面的代码 当响应成功或失败时 如何将响应输出回网页 loginUser data var authenticationData Username data email Password data password var authen
  • ConfigParser - 打印 config.sections() 返回 []

    我正在尝试使用ConfigParser模块来解析 ini文件 问题是当我尝试打印时sections或者其他什么 它返回空列表 配置文件 SERVER host localhost port 9999 max clients 5 REGULA
  • 如何在 Android NDK 中创建新的 NativeWindow?

    我尝试了 test libstdc 演示 并且喜欢我可以从控制台启动它 而无需运行成熟的 Android 应用程序 我想创建一个 opengl 上下文 以便我能够从控制台内执行我的 opengl es 2 0 应用程序 而无需太多麻烦 知道
  • Distutils:构建多个共享方法的 Python 扩展模块(用 Swig 编写)

    我有四个 C 文件 A h A cpp B h B cpp A h 包含在 B cpp 中 A h pragma once void A A cpp include
  • 以编程方式创建选择列表

    有谁知道使用 JQuery 以编程方式创建包含选项的 HTML 选择列表的技术 var arr val 1 text One val 2 text Two val 3 text Three var sel
  • Redis serviceStack池化连接客户端

    我正在设计一个使用 Redis 作为数据库的 Web 服务 我想了解使用 Redis 与 StackService 客户端连接的最佳实践 重点是 我一直在阅读有关 Redis 的内容 并且发现与服务器交互的最佳方式是使用单个并发连接 问题是
  • 使用 Firebase 进行数据库式查询

    有没有一种快速的方法可以使用 Firebase 执行数据库式查询 例如 给出 firebase 参考users有字段user id name and age 执行与此类似的查询的最佳方法是什么 SELECT name FROM users
  • 如何处理原始数据(用Python)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我没有很好地解释这一点 所以希望这个编辑更有意义 基本上我必须编写适用于大量测试用例的代码 下面的输入只是一个示例 所以我无法手动将输入输
  • Angular 2 - 当(observableData | async)尚未解析时显示加载信息

    正如标题所说 我想拥抱 rxjs Observables 的力量 我现在应该做什么 dataview html div Loading data div gt ul li d value li ul dataview ts data any