问题标签 [angular-event-emitter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
95 浏览

angular - Angular 事件发射问题

最近我为朋友启动了一个项目,我需要使用事件。我以前只用过一次(只是提醒一下)。不幸的是,我似乎无法让父母赶上发射。这是一些代码:
发出的孩子:

这是父html:

这是父打字稿:

发出的日志存在,但捕获的日志不存在。有任何想法吗?我觉得我做得很好,但我真的迷路了。

0 投票
1 回答
786 浏览

angular - Angular Jasmine 测试 Eventemitter 订阅

我正在尝试在 Angular 中测试以下组件,特别是驻留在 userService 上的 eventEmitter。

我的测试如下:我正在运行 registerUser() 方法,该方法订阅 userService 中的 eventEmitter (在测试中模拟),然后调用 showToast() 方法,该方法将显示一个 toast 并返回结果事件中的服务作为值。

不知何故,该ngDestroy()函数被调用,该函数在测试完成之前从 eventEmitter 取消订阅
因此我遇到了 objectUnsubscribed 错误。

知道如何解决这个问题吗?

0 投票
1 回答
301 浏览

angular - 如何在Angular 8中用相同的事件中断先前的发射

我有一个应用程序,每次用户选择表中的一行时都会刷新一个数据网格表。为了简单起见,我有一个示例代码:

子组件.ts

rowSelectedEvent用户单击表格的一行时,会在 HTML 中触发。这将是一个例子:

app.component.html

app.component.ts

此代码工作正常,接收带有新数据的 API 响应,服务器端进行计算并返回新值大约持续 4-5 秒。当用户重复或在短时间内单击几行时出现问题,因为应用程序发疯并多次刷新数据而不是一次(最后一次)。我尝试使用unsubscribe(),但后来我无法再次订阅,因此功能丢失。我也尝试过switchMap(),但由于某种原因,当我调试代码时它没有进入它。

这个想法是在用户单击新行时停止挂起的进程,让最后一次单击成为进行计算并接收响应的那个。有什么建议吗?

0 投票
2 回答
55 浏览

angular - EventEmitter 和 EventEmitter 有什么区别和事件发射器()

有什么区别(如果有的话):

@Output() exampleChange: EventEmitter<Example> = new EventEmitter();

@Output() exampleChange = new EventEmitter<Example>();

0 投票
0 回答
173 浏览

angular - 如何将数据从小部件组件传递到另一个应用程序组件?

我有一个小部件,我想将数据传递给另一个角度组件?

widget.js中,我有一个组件,我想传递数据。

登录.html:

在 Angular 应用程序中,我正在注入 widget.js

在“主页”组件中

主页.ts

当我尝试上面的代码时,只有 receiveMessage 没有调用?

0 投票
1 回答
794 浏览

angular - 如何在 Angular 8 中捕获动态渲染组件的输出?

我想捕捉ViewChild渲染组件的输出。火灾后显示的 ViewChild 的内容ngIf

这是我的模板代码:

这是 TypeScript 文件:

这是 ProcutCreateEditComponent:

该组件的 TypeScript 代码:

这是 UserCreateEditComponent 的 TypeScript 代码:

因此,在 ProcutCreateEditComponent 中,我创建了一个 UserCreateEditComponent 实例,并将该实例传递给 DialogPreparatorComponent。DialogPreparatorComponent 在对话框中显示 UserCreateEditComponent,然后我单击保存按钮(在 UserCreateEditComponent 中),那里将saveModel()发射到 DialogPreparatorComponent。我想......但不是这个,我收到了这个错误消息:

实际上它很好,因为ng-template没有saveModel()输出。

但是在那一点上我怎样才能捕捉到 UserCreateEditComponent 的输出呢?

0 投票
1 回答
188 浏览

angular - Angular:如何强制 EventEmitter 在测试中刷新

我有以下角度测试:

我无法刷新eventEmitter2和测试失败。如何EventEmmiter.emit()在测试中刷新?

注意:这是我的测试的简化版本,它使用内部使用async的 Angular 管道。EventEmitter

在此处输入图像描述

0 投票
1 回答
261 浏览

angular - 有角度的闪存卡 - 组件刷新后不听 eventEmitter

我从某人那里继承了一些代码,但我遇到了一个奇怪的问题,无法弄清楚。我有一个屏幕,显示 9 个抽认卡的网格 - 随机选择 - 单击时应该翻转并显示一个单词(它用于教孩子单词)。

在按下刷新按钮之前它工作正常,它应该选择一组不同的随机九张牌。这样做没问题,但是点击后卡片不再翻转。

似乎抽认卡组件正在“发出”点击事件,但在“刷新”操作之后,新生成的“抽认卡”似乎没有在监听。

任何人都知道出了什么问题以及我该如何解决?谢谢!

代码由页面 (flashcards.component.html) 组成:

在 flashcards.component.ts 中:

和 flashcards.component.scss 文件:

闪存卡grid.component.html:

闪存卡grid.component.ts:

和抽认卡组件本身(flash-card.component.html)

和闪存卡组件.ts:

最后是闪存卡组件.scss:

0 投票
1 回答
416 浏览

javascript - Angular 9 - 退出输入框正在发出不相关的事件

我有一个子组件,我从中传递数据并在父组件中显示。父组件向它传递一个数字和一个 eventEmitter 以允许父组件显示由子组件更新的数据。

父组件

子组件 消息创建者

然后我计划让消息创建器组件让用户输入一条消息,它将显示在主组件中。我添加了一个<input type=text>, 但现在如果我在输入框中输入任何文本并且光标离开该框,countChange则会触发事件并且传递event的是类型[Object Event],它会破坏count父容器中的变量。

我意识到我可以在 countChange 函数中添加一个 if 语句,但我认为我做错了什么。

0 投票
1 回答
45 浏览

angular - 将孩子传递给父母的角度数据没有响应

我有一个来自数组的表中的数据列表,我在单击Add User按钮上显示表单,它工作正常。

但我也想在单击cancel似乎不起作用的按钮时隐藏表单。我遵循了有关事件发射器的 Angular 文档。单击事件时,数据不会传输给父级。

我创建了一个演示。请帮忙。

Stackbliz 演示