Angular 5 keyup事件报错:_co.onKey is not a function求助
解决Angular 5中keyup事件报错
_co.onKey is not a function的问题 嘿,我看到你遇到的这个报错了——ERROR TypeError: _co.onKey is not a function,但有意思的是你贴出来的代码里明明用的是fireEvent方法,也正确绑定到了input的keyup事件上。那大概率是下面这几个原因之一,你可以逐一排查:
- 清理旧缓存:Angular在开发模式下偶尔会缓存旧的HTML模板内容,如果你之前曾经用过
onKey这个方法名后来改成了fireEvent,浏览器可能还在加载旧模板。试试按Ctrl+Shift+R强制刷新页面,或者重启你的Angular开发服务器(停止ng serve后重新启动),确保最新的模板代码被加载。 - 检查模板的其他元素:仔细检查你的
sandbox.component.html文件,看看有没有其他元素(比如另一个input、textarea)不小心绑定了(keyup)="onKey($event)",但你在组件类里并没有定义onKey方法。这种细节很容易被忽略,尤其是模板内容较多的时候。 - 确认组件与模板的关联正确性:虽然你贴的代码里
@Component装饰器的templateUrl指向了正确的文件,但还是可以核对一下路径拼写有没有错误,或者是不是不小心把模板内容写到了其他文件里。
如果以上排查都没解决问题,你可以尝试把模板改成内联形式来测试,排除模板文件加载的问题:
import { Component } from "@angular/core"; @Component({ selector: "sandbox", // 改用内联模板 template: `<input (keyup)="fireEvent($event)">`, styleUrls: ["./sandbox.component.css"] }) export class SandboxComponent { fireEvent(e){ console.log(e.type); } }
这样如果能正常运行,就说明之前的模板文件可能存在加载或者缓存的问题,再针对性解决即可。
内容的提问来源于stack exchange,提问作者user6665922
相关产品推荐
相关产品推荐

