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

Angular 7: EventEmitter在单击事件上不起作用

Angular 7是一种流行的前端开发框架,它基于TypeScript构建,并且具有许多强大的功能和工具。在Angular中,EventEmitter是一个重要的类,用于在组件之间传递数据和触发自定义事件。

针对你提到的问题,即EventEmitter在单击事件上不起作用,可能有几个原因导致这种情况:

  1. 错误的事件绑定:请确保你正确地将EventEmitter绑定到单击事件上。在Angular中,可以使用(click)指令将事件绑定到HTML元素上,例如:
代码语言:txt
复制
<button (click)="onClick()">点击我</button>

在组件类中,你需要定义onClick方法,并在其中触发EventEmitter,例如:

代码语言:txt
复制
import { Component, EventEmitter, Output } from '@angular/core';

@Component({
  selector: 'app-example',
  template: `
    <button (click)="onClick()">点击我</button>
  `
})
export class ExampleComponent {
  @Output() myEvent = new EventEmitter();

  onClick() {
    this.myEvent.emit();
  }
}
  1. 未正确订阅事件:如果你在父组件中使用了子组件,并且想要监听子组件中的EventEmitter事件,你需要确保正确地订阅该事件。在父组件的模板中,可以使用(myEvent)指令来订阅事件,例如:
代码语言:txt
复制
<app-example (myEvent)="handleEvent()"></app-example>

在父组件的类中,你需要定义handleEvent方法来处理EventEmitter事件的触发,例如:

代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `
    <app-example (myEvent)="handleEvent()"></app-example>
  `
})
export class ParentComponent {
  handleEvent() {
    // 处理EventEmitter事件的触发
  }
}
  1. 组件之间的层次关系:如果你的组件层次结构很复杂,可能会导致EventEmitter无法正常工作。请确保组件之间的层次关系正确,并且EventEmitter在正确的组件中定义和触发。

总结起来,EventEmitter在Angular中是一个非常有用的工具,用于在组件之间传递数据和触发自定义事件。如果EventEmitter在单击事件上不起作用,你需要检查事件绑定是否正确,是否正确订阅了事件,并确保组件之间的层次关系正确。如果问题仍然存在,可能需要进一步检查代码逻辑和调试。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,我无法给出具体的链接。但是,腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,你可以访问腾讯云官方网站,了解更多关于这些产品的信息和文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular Input和Output

前面我们介绍了 Input 装饰器的作用,也了解了当应用启动时,Angular 会从根组件开始启动,并解析整棵组件树,数据由上而下流下下一级子组件。...而我们今天介绍的 Output 装饰器,是用来实现子组件将信息通过事件的形式通知到父级组件。 介绍 Output 属性装饰器前,我们先来介绍一下 EventEmitter 这个幕后英雄。...((value: number) => console.log(value)); numberEmitter.emit(10); Angular 中的 EventEmitter 应用场景是: 子指令创建一个...子指令调用已创建的 EventEmitter 实例中的 emit(payload) 方法来触发一个事件,父指令通过事件绑定 (eventName) 的方式监听该事件,并通过 $event 对象来获取 payload...通过上面的实例,我们知道我们可以 AppComponent 父组件中监听 CounterComponent 子组件的 change 事件,然后 change 事件中更新 initialCount 的值

2.3K50
  • Angular 6.x 基础教程

    第三节 - 事件和模板引用 Angular 中,我们可以使用 (eventName) 语法,进行事件绑定。此外,可以使用 #variableName 的语法,定义模板引用。...第四节 - 事件进阶 获取鼠标事件 第三节的示例中,假如我们需要获取鼠标事件,那应该怎么办呢?...$event 自动映射为触发的事件,与我们 Provider 中 Token 的作用类似。除了监听鼠标事件外,我们还可以监听键盘事件。...第九节 - 使用 Output 装饰器 Output 装饰器的作用是用来实现子组件将信息,通过事件的形式通知到父级组件。...介绍 Output 属性装饰器前,我们先来介绍一下 EventEmitter 这个幕后英雄: let numberEmitter: EventEmitter = new EventEmitter

    15.6K20

    Angular 组件通信

    上一篇,我们讲了 Angular 结合 NG-ZORRO 快速开发。前端开发,很大程度上是组件化开发,永远离不开组件之间的通信。那么, Angular 开发中,其组件之间的通信是怎么样的呢?...子组件通过 Emitter 事件传递信息给父组件 通过 new EventEmitter() 将子组件的数据传递给父组件。...// child.component.ts import { Component, OnInit, Output, EventEmitter } from '@angular/core'; @Component...constructor() { } ngOnInit(): void { this.childSayHi.emit('My parents'); } } 通过 emit 通知父组件,父组件对事件进行监听...报错的原因如下: 类型 使用范围 public 允许累的内外被调用,作用范围最广 protected 允许类内以及继承的子类中使用,作用范围适中 private 允许类内部中使用,作用范围最窄

    1.9K20

    Angular6自定义表单控件方式集成Editormd

    ControlValueAccessor要处理的就是实现 Model -> View,View -> Model 之间的数据绑定,其具体的作用是: 把 form 模型中值映射到视图中 当视图发生变化时,...:用来获取原生表单控件的值更新时通知Angular表单控件更新的函数(即,设置当控件接收到 change 事件后,调用的函数) registerOnTouched:用来获取通知用户正在交互的函数(即,设置当控件接收到...touched 事件后,调用的函数)。...准备工作 经过上面大致了解ControlValueAccessor,正式开始前还需要最后的准备工作: 使用npm或者yarn安装jquery npm install jquery 或者 yarn add...this.editormdConfig : new EditorConfig(); // 监听编辑器加载完成事件处理,由于该编辑器的配置特性,只能提前写好传入。

    5.2K20

    Angular—都2019了,你还对双向数据绑定念念不忘

    于是乎,goolge2016年推出了angular彻底改变了检测机制,这次并没有大力吆喝双向数据绑定,但仍会有人习惯的问一句,“有没双向数据绑定?”。如果你只是随口一问,我会告诉你,有。...Angular中的’双向数据绑定‘ 没有黑魔法 Angular努力拥抱web标准,不创造新名词,也不使用什么黑魔法,那么双向绑定是如何实现的呢?事实上通过属性绑定和事件,这并不难做到。...input元素上会产生input事件,通过监听这个事件把name重新赋值。 与其关心双向绑定等黑魔法(实际还算不上黑魔法),倒不如去关心‘输入和输出’。...模板上()的语法代表了输出,html元素通过事件或者组件通过EventEmitter向外输出值。...$event可以视作获取输出的关键字,不同场景下代表的对象是不同的,上面这段代码中由于是监听了input事件,所以它代表的就是 InputEvent,通过属性查询我们获取到了事件上传递的值。

    4.4K30

    Angular快速学习笔记(3) -- 组件与模板

    实现自定义事件 通常,指令使用 Angular EventEmitter 来触发自定义事件。...指令创建一个 EventEmitter 实例,并且把它作为属性暴露出来。 指令调用 EventEmitter.emit(payload) 来触发事件,可以传入任何东西作为消息载荷。...元素层面上,既要设置元素属性,又要监听元素事件变化。Angular 为此提供一种特殊的双向数据绑定语法:[(x)]。 [(x)] 语法结合了属性绑定的方括号[x] 和事件绑定的圆括号(x)。...这个属性几乎总是返回 AngularEventEmitter。 当它通过事件绑定的形式被绑定时,值会“流出”这个属性。 你只能通过它的输入和输出属性将其绑定到其它组件。...子组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件

    15.2K30

    Angular 从入坑到挖坑 - 组件食用指南

    4.1.2、模板绑定语法 angular 应用中,组件扮演着控制器或是视图模型的作用创建组件时会关联一个 html 文件,这个 html 文件则是一个基础的 angular 模板文件 在这个模板文件中...事件绑定中,可以通过 $event 参数获取到 dom 事件对象的属性从而获取到模板信息 输入的值:{...使用 @Output 装饰器配合 EventEmitter 实现 子组件中引入 Output 和 EventEmitter,通过 @Output 装饰器定义一个事件触发器,然后就可以通过这个事件触发器的...emit 方法进行事件广播 // 引入 Output、EventEmitter import { Component, OnInit, Output, EventEmitter } from '@angular...,就可以通过子组件上使用事件绑定的方式绑定到一个父组件事件,通过 $event 获取到子组件传递的数据值 父组件内容: 2、使用 @Output 装饰器配合 EventEmitter

    15.8K30

    Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

    ngOnDestroy:Angular销毁指令/组件之前清除。取消订阅可观察的对象并脱离事件处理程序,以避免内存泄漏。...Angular2中,组件中发生的任何改变总是从当前组件传播到其所有子组件中。如果一个子组件的更改需要反映到其父组件的层次结构中,我们可以通过使用事件发射器api来发出事件。...简而言之,EventEmitter@ angular/core模块中定义的类,由组件和指令使用,用来发出自定义事件。...@output() somethingChanged = new EventEmitter(); 我们使用somethingChanged.emit(value)方法来发出事件。...然后,导出const路由:ModuleWithProviders = RouterModule.forChild(routes); 7Angular 2应用中,我们应该注意哪些安全威胁?

    17.3K80

    Angular 中的伪事件

    尽管 Angular 模版绑定文档中提到了伪事件 pseudo-event,但是在其他地方没有进一步的文档说明。深入之前,我们看看 Angular 中的伪事件解决了什么问题。...event.target.checked; } } } 译者加: mac 平台上不起效 正如上面案例所示,我们监听 KeyboardEvent.key 来检查哪个按键被敲击。...Angular事件将解决上面的担忧。通过伪事件Angular 允许你直接绑定指定按键或者按键组合。这意味着,键盘事件只会通过特定键或者组合键上触发,而不是所有键盘事件上都触发。...伪事件大多数字符号键(如减号,等号,斜杆,左括号,右括号,反向号等)上仍然缺乏这种映射。...译者加:某些伪事件平台上绑定有一定差异,比如在 mac 上绑定 document:keydown.control.arrowright 不生效, window 上则生效

    26240

    Angular核心-父子间组件传递数据-重难点

    (达内教育学习笔记)仅供学习交流 Angular核心-父子间组件传递-重难点 Angular核心-父子间组件传递数据-重难点方向一:父=》子传递数据方向二:子=》父父子组件传递数据的简便方法:...Angular核心-父子间组件传递数据-重难点 方向一:父=》子传递数据 方向二:子=》父 父子组件传递数据的简便方法: Vue.js和Angular中的父子间消息传递原理一样,都可以用口诀:“Props...(其中携带数据),把数据传递给父组件(父组件提供事件处理方法) Child.ts:自定义事件发射器–输出属性 import { Component, EventEmitter, OnInit, Output...} from '@angular/core'; //造一个事件发射器 //输出型属性,可以向父组件输出数据 @Output() private cryEvent = new EventEmitter...(this.userInput) } 父组件中找到子组件的模块:监听子组件的事件 </app-myc01

    1.2K20

    angular基础面试题_java web面试题

    ngOnInit() 之前以及所绑定的一个或多个输入属性的值发生变化时都会调用 ngOnInit: Angular 第一次显示数据绑定和设置指令/组件的输入属性之后,初始化指令/组件。...,ngDoCheck之后 ngAfterContentChecked:每当 Angular 检查完被投影到组件或指令中的内容之后调用,ngAfter...之后调用 ngAfterViewInit:当...父子组件传值 子组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件。父组件绑定到这个事件属性,并在事件发生时作出回应。...输出给父组件 @Output EventEmitter somethingChanged.emit(value)也叫事件发射器 触发父组件值得改变 子组件接收值用的@input 组件样式 ViewEncapsulation.Native...watch,当浏览器接受到可以被angular context(当事件触发,调用apply进入angular context)处理的事件时,就会触发digest循环,它会遍历每一个watch检查其属性和值是否发生改变

    13K50

    Angular快速学习笔记(4) -- Observable与RxJS

    介绍RxJS前,先介绍Observable 可观察对象(Observable) 可观察对象支持应用中的发布者和订阅者之间传递消息。 可观察对象可以发送多个任意类型的值 —— 字面量、消息、事件。...比如: EventEmitter 类派生自 Observable。...HTTP 模块使用可观察对象来处理 AJAX 请求和响应 路由器和表单模块使用可观察对象来监听对用户输入事件的响应 事件发送器 EventEmitter Angular 提供了一个 EventEmitter...EventEmitter 扩展了 Observable,并添加了一个 emit() 方法,这样它就可以发送任意值了。...你可以使用 RxJS 中的 filter() 操作符来找到感兴趣的事件,并且订阅它们,以便根据浏览过程中产生的事件序列作出决定。

    5.1K20
    领券