在 Angular 中渲染模板之前加载数据

2023-11-29

我在用角6并使用单向绑定。

我在组件中的代码如下所示。

ngOnInit() {
 this.profile.getUser(1).subscribe((data) => {
  this.userData = this.compiler.constructUserData(data);
 });
}

userData 有一个对象并且它有属性。我正在尝试将其数据绑定在 HTML 中,如下所示

<mat-list-item role="listitem">
          <span matLine>
            <span>First Name: </span>
            <span> {{userData?.first_name}}</span>
          </span>
        </mat-list-item>
        <mat-list-item role="listitem">
          <span matLine>
            <span>Last Name: </span>
            <span> {{userData?.last_name}} </span>
          </span>
        </mat-list-item>
        <mat-list-item role="listitem">
          <span matLine>
            <span>Email: </span>
            <span> {{userData?.email}} </span>
          </span>
        </mat-list-item>
        <mat-list-item role="listitem">
          <span matLine>
            <span>Mobile: </span>
            <span> {{userData.mobile_no}} </span>
          </span>
        </mat-list-item>

在这里我用过? after userData多变的。但是当我写的时候?还有最后一项

e.g. mobile_no它不会在网络上显示任何数据(名字、姓氏、电子邮件或手机号码)。但如果我删除?从最后一项或任何一项开始。数据显示但在网页的控制台中。

错误显示如下所示。

Error description


如果您订阅Observable并且不放置?在模板中,确保初始化this.userData最初是一个空对象。

像这样的事情:

userData = {};

我建议你宁愿使用async管道在模板中并且不订阅 Observable。假设你会得到userData作为一个对象包含email, first_name等在你的userData对象,这看起来像这样:

import { map } from 'rxjs/operators';

...

userData$;

...

ngOnInit() {
  this.userData$ = this.profile.getUser(1).pipe(
    map(data => {
      return this.compiler.constructUserData(data);
    })
  );
}

在你的模板中:

<div *ngIf="userData$ | async as userData">
  <mat-list-item role="listitem">
    <span matLine>
            <span>First Name: </span>
    <span> {{userData.first_name}}</span>
    </span>
  </mat-list-item>
  <mat-list-item role="listitem">
    <span matLine>
            <span>Last Name: </span>
    <span> {{userData.last_name}} </span>
    </span>
  </mat-list-item>
  <mat-list-item role="listitem">
    <span matLine>
            <span>Email: </span>
    <span> {{userData.email}} </span>
    </span>
  </mat-list-item>
  <mat-list-item role="listitem">
    <span matLine>
            <span>Mobile: </span>
    <span> {{userData.mobile_no}} </span>
    </span>
  </mat-list-item>
</div>

这是一个工作示例 StackBlitz供您参考。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Angular 中渲染模板之前加载数据 的相关文章

随机推荐

  • 如何分析 Java 核心转储中的信息? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果一个进程崩溃并留下核心转储或者我创建一个gcore那我该如何分析呢 我希望能够使用jmap jstack jstat等等 还可以查看所有变量的值 这样我就可以找到 JVM 崩溃或
  • 列表视图顶部出现奇怪的黑线

    我正在创建一个布局ListView在列表的最顶部有一条奇怪的黑线 我似乎不知道如何摆脱它 它是的一部分ListView因为它会随着我调整大小而上下移动ListView 以前有人遇到过这个吗 由于某种原因 我无法让 DDMS 进行屏幕截图 所
  • 将旧域重定向到新域 - Rewriterule

    以下是我的 htaccess 文件中的重定向规则 他们重定向https olddomain com to https subdomain domain com但网页没有被重定向 我仍然在加载 olddomain com page1 Rewr
  • 将数据从 Flash 发送到 Starling 类

    我想将数据从 mainClass Flash 类 发送到我的 Starling 类 这是两个类的代码 我需要在它们之间传递数据 package import flash display Sprite import flash events
  • 如何通过 Jasper PHP/REST API 部署报告(jrxml 文件)?

    如何部署报告 jrxml文件 通过 Jasper PHP REST API 到 Jasper 报表服务器 要使用 Rest API 在 Jasper Server 上部署 Jasper 报告 您可以使用以下方法 上传 JRXML 文件 JR
  • 如何使用正则表达式和Powershell提取字符串“Task(12345)”中的数字?

    如何使用正则表达式和Powershell提取字符串 Task 12345 中的数字 我尝试了以下方法 但没有机会 file gc myfile txt matches regex Task d 1 5 matches file Get a
  • Android 谷歌驱动器文件更改侦听器不起作用

    我已将更改侦听器注册到谷歌驱动器文件 如下所示 DriveFile driveFile Drive DriveApi getFile mGoogleApiClient mSelectedFileId driveFile addChangeL
  • 将秒转换为 HH:MM:SS [重复]

    这个问题在这里已经有答案了 我在网上找到了一个将秒转换为HH MM SS的函数 函数是这样的 function sec2hms sec padHours false hms hours intval intval sec 3600 hms
  • Codeigniter:标头已发送错误[重复]

    这个问题在这里已经有答案了 我有一个 CI 应用程序 它具有身份验证控制器和切换用户功能 基本上它所做的就是从 URI 中获取 ID 从 ID 中获取一些用户数据 分配一些会话数据 然后加载视图 function switch user i
  • 整个项目的行尾更改编辑器/应用程序

    我有一个由许多扩展组成的项目 这些扩展使用全部 3 种行结束类型 但服务器只能运行2个 我有一个编辑器可以更改打开文件中的行结尾 但我需要一些可以进行批量转换的应用程序 因为它大约有 10 000 个文件 有任何想法吗 谢谢你 例如 可以使
  • 无法理解如何在 1.6+ 中使用不同密度的图像?

    我试图了解 res drawables 图像如何在不同的屏幕密度下工作 现在我有一个 1 5 的应用程序 例如 我有一个 100x100 像素的图像 当在 Droid 上使用时 它会缩放该图像 使其在该设备上看起来具有相同的大小 所有其他布
  • Phonegap 应用程序:外部 URL 无法在 IOS 的应用内浏览器中打开

    外部 URL 无法在我的 PhoneGap IOS 应用程序的系统浏览器中打开 我正在使用 PhoneGap Build 2 7 0 JavaScript window open myURL blank location yes 配置文件
  • 使用 WHERE ... IN (...) 进行慢速 SQL 查询的替代方法

    这实际上是一个更大的复杂查询的一部分 根据查询计划 此语句的排序主导较大查询的成本 通过具体化查询的这一部分 我验证了它在成本中占主导地位 select sID ROW NUMBER over partition by sID order
  • 奇怪的 java 行为与原始类型的转换

    可能有人在某个地方问过这个问题 但我找不到它 有人可以澄清为什么这段代码会编译并打印出来吗1 long i byte char int long 1 System out println i 它被解析为 long i byte char i
  • Java 8 Stream 与批处理

    我有一个包含项目列表的大文件 我想创建一批项目 并使用该批次发出 HTTP 请求 所有项目都需要作为 HTTP 请求中的参数 我可以很容易地做到这一点for循环 但作为 Java 8 爱好者 我想尝试使用 Java 8 的 Stream 框
  • 与儿童一起使用 CCSprite 淡出

    我正在使用一个CCSprite和其他一些人CCSprite作为子对象添加的对象 我使用的其他动画 缩放和旋转 效果很好 并且子对象也有动画 但是当我使用时CCFadeOut 它只会淡化父级 我读到淡出不适用于儿童 除了迭代每个孩子并调用每个
  • 如何在asp.net中的preinit函数中访问Session?

    void Page PreInit Object sender EventArgs e HttpCookie userInfo userInfo Request Cookies userInfo Session EmpID userInfo
  • TPU本地文件系统不存在?

    我写了一个神经网络模型来分析图像并在最后提取 8 个浮点数 该模型在我的计算机上运行良好 但速度缓慢 因此我在 TPU 云上尝试它 然后砰 我有一个错误 I1008 12 58 47 077905 140221679261440 tf lo
  • Python 中带有两个条件的 if 语句

    我正在编写一个简单的控制台程序来帮助我自己和一些地质学同学进行岩石样本分析 我们的讲师为我们提供了一个流程图 有助于指定样本的特征 我正在尝试将其制作成控制台程序 我的问题是第 9 行的 if 语句是否可以接受两个条件 如果可以的话我写得正
  • 在 Angular 中渲染模板之前加载数据

    我在用角6并使用单向绑定 我在组件中的代码如下所示 ngOnInit this profile getUser 1 subscribe data gt this userData this compiler constructUserDat