3

在关卡选择事件上调用函数的 HTML 代码。这段代码是用 Ember 框架编写的。

{{ action "onLevelSelect" this on="change" target= "view"}}

通过触发此事件调用的 Javascript 函数:

onLevelSelect : function(event) {
    var getSelectedLevel = event.target.selectedOptions[0].label;   // error line

    /*rest of the code goes below*/
}

当谈到“错误行”时,我收到了这个错误。

"ReferenceError: event is not defined".

我已经尝试过 window.event 和 event.which 并且我也尝试过将事件显式发送到函数"onLevelSelect"

4

4 回答 4

2

我解决了这个问题,但忘记更新了。解决方案是

Firefox 不支持使用 ember 句柄语法来处理诸如 等事件ClickChange但它可以在 Chrome 中使用。因此,我使用 jQuery 函数来处理这些事件,例如click(event){},change(event){}等(我们也可以使用 HTML 函数,例如onClick(), onChange())。

于 2013-10-25T10:34:52.127 回答
0

这种行为是正确的。如果您使用操作助手,Ember 不会传递事件对象。你能展示更多你的视图和模板代码吗?你想达到什么目的?

于 2013-04-02T08:48:18.733 回答
0

我遇到了同样的问题,我通过使用onclick={{action ...}}而不是仅仅{{action ...}}在车把中解决了这个问题。我也在其他地方看到了这个记录。单独使用动作助手不会传递事件对象。但是使用 onclick 可以。

所以基本上把你的代码改成这样:

onclick={{ action "onLevelSelect" this on="change" target= "view"}}
于 2017-05-31T19:33:42.693 回答
0

在 Firefox 中,全局window.event在 onclick 函数回调中是不可访问的。所以你不应该依赖这个。 <input {{action 'onLevelSelect'}} value="test" />- 在这里你不会收到方法中event的对象onLevelSelect

但在下面,您将收到eventobject 作为最后一个参数,

<input onchnage={{action 'onLevelSelect'}} value="test" />

我在这个答案中详细解释了

于 2017-05-31T19:46:34.893 回答