问题标签 [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.
angular - 事件发射器工作一次但不是第二次Angular 8
我有这个变量,它控制对话框是否显示,它在第一次工作,但不是在第二次工作,发出执行但不再调用接收函数。
父类:
父 html:
在子类中:我有一个函数,当触发调用发出和发出确实被调用时,它不会第二次触发父级上的函数
我想这可能与 ngIf 相关,但不确定,这里有什么问题?
angular - 渲染子组件后如何保留父组件事件
我有一个带有 3 个单选按钮的父组件,即 child-one、child-2 和 child-3。单击单选按钮会显示相应的子组件。现在,在这个子组件中,我有一个单选按钮 Yes,No。单击此子组件单选按钮。被单击其单击事件的父组件单选按钮消失。
我已经使用@Input 和@Output 传递了数据来发出子数据。
单击父组件单选按钮或单击子组件单选按钮。单选按钮单击事件不应重置。
这是有问题的代码链接
angular - 如何在Angular 7中同时从不同的EventEmitter获取所有发出的值
我有一个父组件,而父组件有多个子组件。每个孩子可能是不同的组件。例如;
我希望当我单击parent
组件中的按钮时,我想同时从所有child
组件中获取消息。我可以用来EventEmitter
从孩子到父母的价值,但我不知道如何同时获得所有孩子的价值?
编辑:
我的子组件是这样动态创建的;
javascript - 如何在库组件中禁用自定义事件?
库中有一个切换器组件ux-components
,允许处理多个事件。其中一个事件处理程序被调用onValueChange
。我想阻止默认行为并完全禁止该事件触发。
我尝试了一些 js 方法,例如preventDefault()
. 似乎它不适用于自定义事件。
这是我有onValueChange
事件的组件。
这是事件发射器:
正如我所说,我只想禁止该事件在一个特定位置触发。
angular - Angular EventEmitter 在回调中不起作用
我在课堂上对 EventEmitter 有一个奇怪的问题。虽然我有一些想法可以解决这个问题,但我想问你是否有想法直接解决我的问题。
简短的摘要
我有一个父组件和一个子组件。当子组件中的某些内容发生更改时,父组件希望得到通知。
在孩子内部,我们有一个按钮。单击时,它会执行修改数据的 http 请求。在subscribe
代码部分,我想通知父类已经做了一些事情。
这打破了这个想法并按预期工作:https ://stackblitz.com/edit/angular-l7hafr
问题
在我的应用程序中,来自子组件的事件只要在请求中完成就永远不会subscribe
发出http
。如果我之前(在订阅函数之外)发出事件,它会按预期工作。
我试过的
我试图找出原因。问题是我根本无法隔离问题。上面的 Stackblitz 按预期工作,而在我的应用程序中几乎没有。
与此问题相关的其他帖子建议.emit()
在 NgZone 跑步者中执行,如下所示:
我在订阅回调中实现了这个,但结果是控制台日志true
,但测试事件仍然没有发出。
这怎么可能?我能做些什么?
编辑
所以我终于能够隔离这个问题,并在这个非常小的例子中得到了证明:https ://stackblitz.com/edit/angular-46pndy
所有问题的原因都在getter
数组中。为什么这会在这里造成问题?
angular - Angular 指令 - 如何监听子组件的输出
在以下示例中,我的 customDirective 如何监听 clrDateChange 输出?
对于普通的 DOM 事件,我可以使用它
elementRef.nativeElement.querySelector('input')
来检索子输入元素。然而 clrDateChange 是一个角度输出。
我想知道指令是否通常可以监听子组件输出。
javascript - 将 Angular Web 组件 EventEmitter 监听到 javascript 中
在本文的帮助下,我使用 angular 元素创建了一个小型 Web 组件,其中包括@Input
和@Output
.
我能够将数据传递给@Input
属性,但听@Output
事件让我抓狂,因为我无法弄清楚如何从回调事件参数中读取数据。
在纯 javascript 中,我正在听这样的 likeNotify 事件:
那么如何从发射器传递的 e 对象中检索真/假值呢?
angular - 发射后的回调()
我有这个父组件:
和这个子组件
这是 AppPickerComponent 的 html
现在,我想对 emit() 进行回调,这样一旦我的事件完成(并且成功),我就可以在父组件中做一些额外的工作。
如何使上述代码登录控制台:
编辑:
举一个更具体的例子来说明我的目标。所以我将有一个@Output() onSubmit
我想提供一个函数来调用后端并处理成功/错误。提交表单位于 overlayPanel 中,一旦后端调用成功,我想隐藏面板。如果有验证错误,我不想隐藏面板,我想在面板内显示错误消息。如果成功,我不希望用户考虑隐藏面板,组件应该自己处理。
javascript - 在(更改)事件回调上具有旧值的角反应形式
考虑一个带有输入的 Angular 响应式表单。每当输入发生变化时,我们都希望保留它的旧值并在某个地方显示它。以下代码显示如下:
正如您所看到的,它已通过在代码中保留三个变量来解决,这是不可取的(是的,changedValue
可以删除变量,但仍然保留两个变量来保留旧值很烦人,不是吗?)。
有没有办法用更少的变量重写代码?Angular 本身是否有一种下降的方式来做到这一点?
你可以在这里找到代码
angular - Interaction with a matSuffix mat-checkbox in a mat-form-field
I have an input in my mat-form-field
that has a mat-checkbox
in matSuffix
.
INFO: The input will be constantly disabled.
I wish I could interact with the mat-checkbox
without necessarily clicking on it directly,
but on the global mat-form-field
.
If I click here:
Result:
I suppose that an event (click)
on the mat-form-field
would be necessary, but I do not know how to proceed.
Thanks for your help.