• 入门教程
  • 原创Java视频
  • Java毕设项目下载
  • Java一对一辅导 Hot
  • Java面试题
  • Java源码下载
进入会员中心 | 退出
  • 首页
  • 入门教程
  • Java辅导班
  1. 首页
  2. 问题列表
  3. 角-在可观察上使用异步管道并将其绑定到html中的局部变量
    提问者:小点点

    角-在可观察<Object>上使用异步管道并将其绑定到html中的局部变量


    嗨,我有一个具有很多属性(名称、标题、地址…)的可观察用户$

    component{
      user$:Observerable<User>;
      constructor(private userService:UserService){
        this.user$ = this.userService.someMethodReturningObservable$()
      }
    }
    

    有没有办法使用html模板中的async管道订阅它并将其绑定到一个局部变量上,就像这样

    <div #user="user$ | async">
      <h3> {{user.name}}
    </div>
    

    我知道can可以在构造函数中订阅它,然后在OnEx/OnDestroy中取消订阅,但我只是好奇我是否可以使用异步管道。

    干杯


    共3个答案

    匿名用户

    #是模板引用变量。它服从于DOM元素,不能这样使用。

    到目前为止,Angular中还没有实现局部变量,可以监控这个封闭的问题是否引用了相关问题。

    从Angular 4开始,ngIF和ngFor指令的语法被更新为允许局部变量。有关详细信息,请参阅ngIF参考。所以可以这样做

    <div *ngIf="user$ | async; let user">
      <h3> {{user.name}} </h3>
    </div>
    

    这将创建div包装元素并为其提供伪装行为,因此不需要?.'埃尔维斯'运算符。

    如果不需要额外的标记,可以将其更改为

    <ng-container *ngIf="user$ | async; let user">...</ng-container>
    

    如果不需要隐藏行为,则可以将表达式更改为真实占位符值。

    占位符可以是对象值的空对象,

    <div *ngIf="(user$ | async) || {}; let user">
      <h3> {{user?.name}} </h3>
    </div>
    

    或者原始价值的空间,

    <div *ngIf="(primitive$ | async) || ' '; let primitive">
      <h3> {{primitive}} </h3>
    </div>
    

    匿名用户

    @Bjorn Schijff和@estus

    而不是:

    <div *ngIf="(user$ | async) || {}; let user">
    

    做:

    <div *ngIf="(user | async) as user">
    

    匿名用户

    使用以下语法:

    <div *ngIf="(user | async) as user"> 
    

    注意:在表达式末尾添加“作为用户”。

    这将做的是等待用户$|async评估,并将结果绑定到user的值(非美元后缀)。

    相关问题


    • Android:在模块jefied-play-services-测量和jefied-play-services-测量-impl中发现重复类
    • 在Hashmap中查找匹配的键/值对
    • 如何迭代Hashmap并与同一Hashmap中的其他键进行组合以比较它们的对象
    • HashCode-如果相等的对象碰巧在同一个桶中散列会发生什么?
    • 如何防止对数组中类对象的重复引用?
    • 如何以及何时在HashMap中完成重新散列
    • 在hashmap或hashtable中重新散列的成本
    • HashMap如何识别内部数组中的哪些位置包含元素?
    • 当HashMap增加其大小时,HashMap中值的索引会发生什么?
    • @BeforeClass在ktor测试类中不工作
    • Jest vanilla JavaScript JSDOM刷新失败,切换beforeAll到before每一个后的第二次测试中断
    • 在笑话中,定义全局变量是否与在BeforeAll中定义相同?
    • 静态编程语言中@BeforeAll的正确解决方法是什么
    • 线程“main”java. lang.NoClassDefFoundError中的异常:在Intellij[Spring boot]中
    • 线程“main”java. lang.NoClassDefFoundError中的异常:org/apache/log4j/ProvisionNode
    • 与角度绑定
    • 异步管道会自动取消订阅可观察,如果我改变可观察?
    • 异步管道是否从服务中定义并从组件变量指向的可观察对象取消订阅?
    • 使用订阅与异步管道时,同一可观察对象的不同结果
    • 如果可观察对象使用异步管道,是否需要取消订阅?

    热门标签

    Java JavaScript Python PHP C# Android Html jQuery C++ Css IOS MySQL NodeJS
    • 常见技术问题

      Android:在模块jefied-play-ser... HashMap如何跟踪entrySet等字段 在Hashmap中查找匹配的键/值对 如何迭代Hashmap并与同一Hashmap... HashCode-如果相等的对象碰巧在... Java哈希码和桶大小-关系
    • 常用工具

      编程笔记 编程面试题 Java Jar包下载 在线工具 LayUI镜像站点 毕设文档下载
    • 站点信息

      关于我们 免责声明 网站标签

    关注站长公众号:锋哥聊编程

    锋哥聊编程

    Copyright © 2017-2022 一点教程. All Rights Reserved.
    备案号:粤ICP备17065202号-3

    微信关注

    微信关注