javascript - 在什么时候应该停止在 AngularJS 中添加 ng-[event] 并使用 element.on ("[event]")?

标签 javascript jquery angularjs

我正在制作一款使用大量事件的应用程序,最终在指令的一个根元素中拥有超过 6 个事件监听器。这可以吗?我应该尽可能使用 ng-events 吗?什么时候可以使用 element.on?

我必须承认,直接在 View 上查看影响每个元素的事件要清晰得多,但我不知道这是否正确,在 View 中混合这么多功能感觉有点脏。

最佳答案

可能是时候创建一个包含所有这些事件监听器的功能的指令了。也就是说,假设您重复使用相同的监听器集,并且这些监听器的功能始终相同,并且可以从 View 的特定 Controller 中抽象出来并抽象到指令自己的通用 Controller 中。

app.directive('MyEventHandler', function(){ 
   return {
      restrict: 'A', //attribute only
      link: function(scope, elem, attr, ctrl) {
         elem.bind('mouseenter', function(e) {
            //do something here.
         });
         elem.bind('mouseleave', function(e) {
            //do something here.
         });
         elem.bind('click', function(e) {
            //do something here.
         });
         elem.bind('dblclick', function(e) {
            //do something here.
         });
      }
   };
});

在此之前,通过给每个单独的行设置格式是管理视觉冲击的好方法。

关于javascript - 在什么时候应该停止在 AngularJS 中添加 ng-[event] 并使用 element.on ("[event]")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978706/

相关文章:

javascript - 用于不区分大小写匹配的 Velocity RegEx

javascript - 如何存储 DIV 值? (鹅毛笔)

javascript - 选项卡内容与其他选项卡内容重叠

javascript - 无法读取未定义的属性(表单验证) - angularjs

javascript - 当另一个 Div 进入视口(viewport)时让 Div 出现

javascript - 检查使用 AJAX 添加的 JSON 中是否已存在值

javascript - MVC 4 Ajax异步文件上传始终将空值传递给 Controller

javascript - 用 jasmine 在指令中测试 replaceWith

javascript - 如何在日期选择器中将日期格式 (MM/DD/YY) 更改为 (YYYY-MM-DD)

javascript - 将部分内容附加到对话框