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

我的ng-template标记不等待ngIf异步完成

ng-template是Angular中的一个指令,用于定义可重用的模板片段。它通常与结构性指令(例如ngIf、ngFor)一起使用,以根据特定条件或迭代项动态渲染DOM元素。

在使用ng-template时,ngIf指令默认是同步执行的,即ngIf的条件表达式在页面渲染时会立即判断。如果条件为false,ngIf指令会从DOM中移除ng-template的内容,反之则会渲染ng-template。

然而,有时候我们希望ngIf异步完成后再进行判断和渲染。可以通过使用异步管道async来实现这一目的。

下面是一个例子,演示了如何使用async管道来确保ng-template标记在ngIf异步完成后进行渲染:

代码语言:txt
复制
<ng-container *ngIf="data$ | async as data">
  <ng-template [ngIf]="data">
    <!-- 在这里放置ng-template的内容 -->
  </ng-template>
</ng-container>

在上述例子中,data$是一个Observable对象,使用async管道将其转换为实际的值data。接下来,ngIf指令会根据data的值进行判断,并在条件满足时渲染ng-template的内容。

需要注意的是,data$应该是一个返回Observable对象的方法或属性,以确保ngIf能够订阅并等待数据的到来。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云开发(云函数):https://cloud.tencent.com/product/scf
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb
  • 腾讯云云服务器 CVM:https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎 TKE:https://cloud.tencent.com/product/tke
  • 腾讯云云安全中心:https://cloud.tencent.com/product/ssc
  • 腾讯云云点播 VOD:https://cloud.tencent.com/product/vod
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网通信:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动推送:https://cloud.tencent.com/product/umeng_push
  • 腾讯云对象存储 COS:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云游戏多媒体引擎 GME:https://cloud.tencent.com/product/gme
  • 腾讯云游戏存储 TGWS:https://cloud.tencent.com/product/tgws
  • 腾讯云游戏数据分析 GDA:https://cloud.tencent.com/product/gda
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【Angular教程】-内容投影u002F@ContentChildu002F@ViewChild

    有条件内容投影 中文网描述: 如果你组件需要_有条件地_渲染内容或多次渲染内容,则应配置该组件以接受一个 ng-template 元素,其中包含要有条件渲染内容。...在这种情况下,建议使用 ng-content 元素,因为只要组件使用者提供了内容,即使该组件从未定义 ng-content 元素或该 ng-content 元素位于 ngIf 语句内部,该内容也总会被初始化...使用 ng-template 元素,你可以让组件根据你想要任何条件显式渲染内容,并可以进行多次渲染。在显式渲染 ng-template 元素之前,Angular 不会初始化该元素内容。...使用ng-container定义我们投影区块 使用ngTemplateOutlet指令来渲染ng-template元素。 通过内置动态指令*ngIf来控制是否渲染投影。...: ContentDirective; } 通过日志可以看到我们在切换容器组件expanded标识时,只有开启状态my-hello组件才会初始化,下面的这个ngIf虽然在页面看不到渲染内容,但组件实实在在被初始化过了

    54830

    NG2&4折腾记 --- 记NG2升级NG4 RC1之修正问题跑起来

    ---- 问题1:template标签已经废弃了 信息来源:启动时候控制台有提示,官方日志也有说 解决方案:全局搜索 ,替换 ---- 问题2: 动画已经独立出一个专门模块 信息来源:官方文档,及手动不信邪尝试【动画一些引入已经包含在@angular/core】了; 解决方案: 手动搜索引入动画页面,还好之前有过分离一下...; this.isExpend(evt.url); }); // 修正 -- 需要给传入参数指定对应类型; // 是特意去打印出来,有什么鬼,一一指定,,懒可以直接指定:any // 获取当前...** ---- NG4亮点 新视图引擎,据说能让渲染更快 加强了*ngIf,里面可以写else了,这里直接拿官方写法Loading...... {{ user.name }} 复制代码

    45310

    【Appetite】ionic3实录(六)首页实现

    不知道一个小时能写完,赶上班… 仍然是先上UI设计图: ?...百度食物图片 如果是远程地址则先保存地址,如果是放本地就在src/assets里面找个地方放,呆会要把地址作为数据一部分,这选择存放本地。...接着我们执行命令新建一个HomeProvider用来统一管理首页数据处理方法(这里按页面逻辑来划分,当然你也可以按业务类型来划分): ionic g provider home 命令执行完成,打开文件写入一个方法...三、安装视频播放组件 用是videogular2,可参考另一篇文章:《【技巧】ionic3视频播放》 四、安装swiper组件 npm install swiper --save 四、实现首页 打开...此外getFriendNews没有后续操作,所以异步调用省掉return。

    1.1K40

    开源异步并行框架,完成任意多线程编排、阻塞、等待、串并行结合、强弱依赖

    Future是java.util.concurrent.Future,是Java提供接口,可以用来做异步执行状态获取,它避免了异步任务在调用者那里阻塞等待,而是让调用者可以迅速得到一个Future对象...) throws Exception { //do your job } }); 我们可以理解为bootstrap.connect这一步是一个耗时操作,不想在那等待它执行完毕...据此,我们拆分出几个角色,master主线程,调度器(发起异步调用),worker(异步工作线程)。然后就是将他们组合起来,完成各种异步回调,以及每个worker正常、异常、超时等回调。...完成了这样小demo,立马从netty复杂中恢复了过来 实现一个简单带回调、超时异步任务 public class BootstrapNew { public static void...还好,CompleteableFuture提供了allOf这个方法,它可以让你传入多个future,并且能够等待这多个future都完成时再统一返回。见下图代码。

    1.8K10

    高级 Angular 组件模式 (5)

    目标 在视图模板内,获取一个指令引用。 实现 模板引用变量是获取某个元素、组件或者指令引用一种方式,这个引用可以在当前视图模板中任何地方使用。...Note: 请注意作用域问题,如果你使用或者是一个结构性指令,比如*ngIf或者*ngFor,它会在这个模板上创建一个新作用域,之后在其内部声明模板引用变量无法在该模板作用域以外使用...// app.component.html // someDiv is an HTMLDivElement 成果 Note: 在stackblitz中,通过打印模板引用变量所指向名字...stackblitz.com/edit/adv-ng-patterns-05-template-ref-variables 译者注 这篇文章作者关于模板引用变量,仅仅介绍了关于如何声明和在视图模板中如何使用,在这里再补充一些...在类内部获取模板引用变量所指向引用是通过使用ViewChild装饰器完成,比如上述文章中第二个例子: @Component({ selector: 'my-app', template:

    64120

    AngularDart4.0 指南- 显示数据 顶

    当你完成后,它应该是这样:lib/app_component.dart import 'package:angular/angular.dart'; @Component( selector: '...更准确地说,重新显示是在与视图相关某种异步事件之后发生,例如按键,计时器完成或对HTTP请求响应。 请注意,您不要调用new来创建AppComponent类实例。...它将元素(及其子元素)标记为“repeater模板”: {{ hero }}  不要忘记* ngFor中主要星号... 不要忘记* ngIf星号(*)。 这是语法重要组成部分。 在“模板语法”页面的ngIf部分阅读有关ngIf和*更多信息。...Dart类,用于为您组件生成模型数据并显示该模型属性。 ngIf有条件地显示基于布尔表达式HTML块。

    5.3K10

    理论 | Angular 中响应式编程 -- 浅淡 Rx 流式思维

    这就需要一个滤波器处理 .debounceTime(500),我们不去处理 500 毫秒内变化,而是等待其输入停顿时再发送数据。...Async 管道 到目前为止,我们还没有进行对 Observable 订阅,如果订阅的话,写再漂亮语句也不会执行。...所幸是,Angular 提供了对于响应式编程非常友好设计,我们完全可以不在代码中做订阅或取消订阅动作。那么问题来了,订阅的话,值怎么获得呢?答案是 Async 管道。...$ 订阅后值,那么 | async 是说 computed$ 是一个 Observable,请对他采用异步处理,即初始化时自动订阅以及在组件销毁时自动取消订阅。...Angular 4 中 NgIf 改进 Angular 4 中 ngIf 现在可以携带 else 了,如果你曾经使用过 Angular 就知道,原来我们是得写两个 ngIf 来完成类似的功能

    5.3K10

    设计思路

    Web Terminal 现在都流行Web操作一切,于是我们又实现了Web Terminal,供用户直接在线链接服务器,这里实现是用了Tornado来完成,Tornado实现WebSocket特别简单...WebSocket asgi服务器,主要处理WebSocket请求 celery - 后台异步任务分发处理 -celery_ansible/celery_default 简单、灵活且可靠,...处理大量消息分布式系统;专注于实时处理异步任务队列,同时也支持任务调度 flower - 负责监控 celery worker执行情况 Web Terminal 主要通过Luna,koko...前端通过 rle.js 文件完成位图解压缩 webterminal 前端由luna 里html5 canvas 和js 渲染出来 Luna 使用了 "guacamole-common-js": "1.1.0...jms 操作录像回放 操作录制: ssh 是由koko基于websocket data完成; rdp 是由Guacamole API 完成 操作回放:由 luna进行 replay 展示,对ssh

    81820

    高级 Angular 组件模式 (6)

    在之前写文章提及过,TemplateRefs就是Angular中Render Props,同时我会在这篇文章中列举一个简单易用例子。...不过你可能会在项目中更频繁地使用,但是在网上你可以很容易搜索到关于TemplateRef知识,因为会给你提供很多html5中...成果 stackblitz演示地址 译者注 这种组件设计模式按个人理解,其实是依赖倒置原则在视图渲染层一种延伸,为什么这么说呢?...正文中仅列举了一个简单例子中,这里在简单提及一个实际工作可能会用到例子,就是表单校验错误提示组件,一般前端组件设计但凡涉及表单,都会是十分复杂,更不用说校验这种灵活性很高功能了。...为了适应表单校验灵活性,我们使用这种模式会事半功倍,提供校验信息组件仅仅声明渲染表单错误提示信息需要设计状态变量即可,比如dirty、touched等等,对于错误信息文案及样式,统统交由错误提示组件使用者完成

    1.2K20

    高级 Angular 组件模式 (6)

    在之前写文章提及过,TemplateRefs就是Angular中Render Props,同时我会在这篇文章中列举一个简单易用例子。...不过你可能会在项目中更频繁地使用,但是在网上你可以很容易搜索到关于TemplateRef知识,因为会给你提供很多html5中...成果 stackblitz演示地址 译者注 这种组件设计模式按个人理解,其实是依赖倒置原则在视图渲染层一种延伸,为什么这么说呢?...正文中仅列举了一个简单例子中,这里在简单提及一个实际工作可能会用到例子,就是表单校验错误提示组件,一般前端组件设计但凡涉及表单,都会是十分复杂,更不用说校验这种灵活性很高功能了。...为了适应表单校验灵活性,我们使用这种模式会事半功倍,提供校验信息组件仅仅声明渲染表单错误提示信息需要设计状态变量即可,比如dirty、touched等等,对于错误信息文案及样式,统统交由错误提示组件使用者完成

    83410

    Angular 服务

    英雄指南 HeroesComponent 目前获取和显示都是模拟数据。 本节课重构完成之后,HeroesComponent 变得更精简,并且聚焦于为它视图提供支持。...它把这个类标记为依赖注入系统参与者之一。HeroService 类将会提供一个可注入服务,并且它还可以拥有自己待注入依赖。 目前它还没有依赖,但是很快就会有了。...把它标记为一个 HeroService 注入点。...上一个版本把英雄数组赋值给了该组件 heroes 属性。 这种赋值是同步,这里包含假设是服务器能立即返回英雄数组或者浏览器能在等待服务器响应时冻结界面。...新版本等待 Observable 发出这个英雄数组,这可能立即发生,也可能会在几分钟之后。

    3.3K70
    领券