AngularJS - 指令

时间:2015-12-01 15:58:22

标签: javascript jquery angularjs events

有以下情况:

我在AngularJS应用程序中实现了一个带有指令和控制器的聊天模块。这用于大厅游戏本身。

在指令的link()函数的某处,我使用以下代码接受输入击键作为输入触发器。

$('#msgInput').keypress((e) => {
        if( e.keyCode == 13 ) // Enter
        {
          var chatMsg = {
            message : $('#msgInput').val()
          };

          $('#msgInput').val('');
          scope.chatModel.sendMessage(chatMsg);
        }
        e.stopPropagation();
      });

最初当页面第一次加载时一切正常 - 我导航到大厅,事件处理程序被注册,每次输入都会执行回调。

这一直有效,直到我决定导航到游戏菜单。

指令的链接函数再次被触发并注册与以前相同的事件处理程序。

enter image description here

从这一点开始,事件处理程序不再处理任何keypress()到输入框。

只要我在大厅或游戏中重新加载页面(f5) - 一切都恢复正常并正常工作,当我导航回另一个菜单(大厅或菜单)时再次停止。

编辑:当我导航回我来自的菜单时,按键()也停止了此菜单的工作(现在用于大厅和游戏) 。只有重新加载才有帮助。

我错过了什么?事件处理程序显然已注册,但在任一菜单中的初始导航后都没有触发。

0 个答案:

没有答案