subject.next 不在 ngOnInit 中触发

2024-05-02

有谁知道为什么这段代码(从主题初始化一个值)不起作用?是否存在错误或设计使然?我究竟做错了什么?

ts

import { Component, OnInit } from '@angular/core';
import { Subject } from "rxjs";

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.styl']
})
export class AppComponent implements OnInit {
  itemSupplier$: Subject<any[]> = new Subject<any[]>();

  items: any[] = [
    {name: 'Item 1', value: 'item1'},
    {name: 'Item 2', value: 'item2'},
  ];

  ngOnInit(){
    this.itemSupplier$.next(this.items);
  }
}

html

<ul>
    <li *ngFor="let item of itemSupplier$ | async">{{item.name}}</li>
</ul>

这似乎是一个计时问题,如果你将它放入 setTimeout 中,它就会起作用。

setTimeout(() => this.itemSupplier$.next(this.items), 0)

EDIT

使用BehaviorSubject 实际上是一个更好的主意。这将在订阅时提供最后一个值。

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

subject.next 不在 ngOnInit 中触发 的相关文章

随机推荐

  • 使用 Template Haskell 生成函数

    是否可以使用 Template Haskell 定义函数 例如 convertStringToValue String gt Int convertStringToValue three 3 convertStringToValue fou
  • 如何从视图中删除单元测试的“@oidc.login_required”?

    I use 烧瓶样机 questions tagged flask oidc用于用户登录和pytest questions tagged pytest供测试用 对于单元测试 我想 删除 oidc require login 我怎样才能做到这
  • 按复杂对象中的列表排序

    我有两节课 public class Customer public string FirstName get set public string LastName get set public List
  • 根指令上的 Angular 2 输入参数[重复]

    这个问题在这里已经有答案了 This https angular io docs ts latest api core Input var html示例展示了如何在子组件上使用 Input 注释 我的问题是如何在根组件上使用它 例如 如果您
  • Code First 中的一对多关系播种

    我得到了以下简单模型 该模型正在代码优先方法中实现 部门和课程是一对多的关系 一个系可以有很多门课程 而一门课程可以只属于一个系 这是模型 public class Department public int DepartmentId ge
  • 如何从设备名(UITableViewCell)的tableview中显示蓝牙支持的服务?

    我正在开发蓝牙应用程序 我在表视图中有一个可用蓝牙设备的名称 如果按下一个设备意味着我想知道另一个带有表视图的视图控制器中支持的所有服务 UUID 名称 给我一个想法 1 外设管理器 NSObject 2 FirstViewControll
  • 美丽的汤 - urllib.error.HTTPError:HTTP 错误 403:禁止

    我正在尝试下载 GIF 文件urrlib 但它抛出了这个错误 urllib error HTTPError HTTP Error 403 Forbidden 当我从其他博客网站下载时 不会发生这种情况 这是我的代码 import reque
  • 在 Pascal 中将文本文件中的字符串读入数组

    使用这个程序 我试图读取一个文件并将其随机打印到控制台 我想知道是否必须使用数组 例如 我可以将字符串分配到一个数组中 然后从数组中随机打印 但是 我不确定如何解决这个问题 另一个问题是 我当前的程序没有从我的文件中读取第一行 我有一个文本
  • 两个人同时在 git 中处理一个文件[重复]

    这个问题在这里已经有答案了 可能的重复 当两个对等点同时将更改推送到同一个远程时 git 如何工作 https stackoverflow com questions 4643998 how git works when two peers
  • 如何在 React 中实现拖放行为

    我正在尝试使用 React 和实现拖放行为反应美丽 dnd https github com atlassian react beautiful dnd图书馆 我想使用选择一些图像反应 dropzone https react dropzo
  • Python setup.py:data_files无法复制“目录”:不存在或不是常规文件

    我有以下 python 项目结构 setup py doc file css file html file js src matlabsources
  • ValueError:缺少“favicon.ico”的静态文件清单条目

    我得到了一个ValueError跑步时python manage py test 我的项目名为fellow go 我目前正在开发一个名为pickup 请注意 此错误是在最近对 Django 的提交中添加的 已修复 24452 修复了 Has
  • 从不同的程序集中动态加载类(具有自定义行为)?

    我们正在为少数客户构建应用程序 每个客户都有自己的要求以及类似的要求 我们还希望将所有代码保留在同一个应用程序中 而不是对其进行分支 并且 IF 不是一个好的选择 因为它会遍布各处 我计划为所有人开设基础课程 然后每个客户都会有自己的类 其
  • 即使更改内容后,Chrome 扩展程序弹出窗口也会重置

    在我的 chrome 扩展中 我必须从背景更改弹出 html 更改会影响然后 再次单击扩展图标后 将显示未更改的弹出窗口 为什么 每次您单击远离弹出窗口时 该窗口都会重置 解决此问题的一种方法是使用后台页面来存储会话数据 在 popup j
  • 如何从 Graph Explorer 查询另一个 Azure Active Directory 租户

    我正在使用 Azure Graph API 资源管理器 我想查询租户中的应用程序列表 我是tenant x 最初创建用户的位置 中的用户 也是tenant y 后来与我的用户创建的 中的管理员 据我所知 当我登录时 我直接进入原始租户 即t
  • 使用rapidjson设置浮点精度

    有没有办法控制使用rapidjson生成的JSON的输出精度 例如 writer String length writer Double 1 0 3 0 这会生成类似以下内容的内容 length 0 33333333 我发送了很多值 并且几
  • 如何使小部件溢出以使滚动条出现在 Qt 中?

    我的小部件的结构是 QWidget 定制为带有圆角边框的面板 要在边界内包含一个带有滚动条并带有边距的区域 然后我将其放入其中 QScrollArea 与 QVBoxLayout 垂直添加内容 然后我在其中添加一系列 标题间距为 0 的 Q
  • 从 C# 程序集中执行 JavaScript

    我想从 C 程序集中执行 JavaScript 代码 并将 JavaScript 代码的结果返回到调用 C 代码 定义我不想做的事情更容易 我并不是试图从我的代码隐藏中调用网页上的 JavaScript 函数 我不想加载 WebBrowse
  • 在 Windows 上使用 PHP 进行分叉/线程的最佳方法是什么?

    我有一个 php 脚本 用于检查许多 数千个 网站上的更新 有时 随着站点数量的增加 情况会更频繁 我在更新其中一个站点时会遇到执行超时 整个脚本都会付诸东流 我能想到的最好的想法是分叉每个更新 所以如果它死了 整体更新就会继续 从我收集到
  • subject.next 不在 ngOnInit 中触发

    有谁知道为什么这段代码 从主题初始化一个值 不起作用 是否存在错误或设计使然 我究竟做错了什么 ts import Component OnInit from angular core import Subject from rxjs Co