我正在尝试在我的input元素中集成一个keyup事件。但根本不起作用。任何人帮我展示触发事件的正确方法?
这是我的hbs文件:
<span class="opt-num">
<input type="number" tabindex="1" min="0" max="9" maxlength="1" value="" onKeyUp={{action "numberValidate"}} style="border:1px solid red" >
</span>
我的route.js文件:
actions:{
numberValidate(){ console.log("hi") }
}
但错误为:Failed: An action named 'numberValidate' was not found
答案 0 :(得分:1)
模板hbs上下文是控制器,因此您需要在控制器的操作哈希中定义numberValidate
函数。
如果你想调用路由器动作,那么你有两个选择,
1.从控制器冒泡
定义函数控制器,从那里你需要在路由中调用函数。
在route.js文件中,
actions:{
numberValidateInRoute(){ console.log("hi") }
}
在controller.js文件中,您需要使用send方法对其进行冒泡。
actions:{
numberValidate(){
this.send('numberValidateInRoute');
}
}
结帐my detailed answer更多与此主题相关的文章。