`
hudeyong926
  • 浏览: 2016625 次
  • 来自: 武汉
社区版块
存档分类
最新评论

AngularJS实现鼠标右键事件 事件冒泡

 
阅读更多

常规javascript鼠标右键直接在标签上加contextmenu="alert('a')"即可,现在angular通过directive来定义一个右键指令。

app.directive('ngRightClick', function($parse) {
    return function(scope, element, attrs) {
        var fn = $parse(attrs.ngRightClick);
        element.bind('contextmenu', function(event) {
            scope.$apply(function() {
                event.preventDefault();
                fn(scope, {$event:event});
            });
        });
    };
});

$parse服务可以讲一个表达式转换为一个函数。这个函数可以被调用,其中的参数是一个上下文对象,通常来说是作用域。另外,通过$parse的表达式返回的这个函数有一个assign属性。这个assign属性也是一个函数,它可以用来在给定的上下文中改变这个表达式的值。

下面是一段简单的代码:

<div my-attr="obj.name" my-directive>testing</div> 
app.directive('myDirective',function($log,$parse){
  return function(scope,elem,attrs){
    //解析"my-attr属性值到一个函数中"
    var model = $parse(attrs.myAttr);
    //model现在是一个函数,可以调用它来获取表达式的值
    //下面这行代码将会输出作用域中obj.name的值  
    $log.log(model(scope));

    elem.bind('click',function(){
      //'model.assign'也是一个函数,它用来更新表达式的值  
      model.assign(scope,'New name');
      scope.$apply();
    })
  }
});

上面的例子可以充分体现我们为什么需要$parse服务。如果属性值是name,那么我们完全可以不用$parse,只用scope[attrs.myAttr]即可。但是在上面的例子中,方括号并不管用。

 

 返回上一页
//返回上一页 window.history.back()
.directive('backButton', ['$window', function($window) {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
      element.bind('click', function() {
        $window.history.back();
      });
    }
  }
}])
 
 
 
分享到:
评论

相关推荐

    基于jquery实现的鼠标左中右键单双击及拖拽和滚轮事件插件原型

    可以实现js的左键单击,双击,拖拽,右键单击,双击,拖拽,和中键的单击,双击和拖拽事件,以及滚轮事件,已经封装成jquery插件,调用方便,功能强大。

    鼠标键盘事件及事件冒泡.pptx

    JavaScript+jQuery 网页特效...鼠标事件;1、鼠标事件;1、鼠标事件(案例);2、键盘事件;2、键盘事件(案例);3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止;3、事件的冒泡与阻止

    自定义控件(冒泡事件)源码(WebControl)

    自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl) 自定义控件(冒泡事件)源码(WebControl)

    解决点击事件冒泡

    解决/阻止 div层内的div层点击事件冒泡触发的小方法 示例代码

    jquery hover 冒泡事件制作心型图片墙鼠标悬浮图片

    jquery hover 冒泡事件制作心型图片墙鼠标悬浮图片 jquery hover 冒泡事件制作心型图片墙鼠标悬浮图片

    jquery-事件冒泡

    jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡...

    阻止滚动条事件冒泡

    阻止滚动条事件mousewheel冒泡,当网页内部元素滚动条到顶或底时不触发浏览器窗口的滚动条事件。

    冒泡10.py python实现的冒泡

    冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python实现的冒泡冒泡10.py python...

    javascript阻止事件冒泡的一种方法

    一种解决事件冒泡的方法,有较好的浏览器兼容性,具体思路参见文档: http://blog.csdn.net/ivyandrich/article/details/22041933

    js冒泡事件测试

    关于冒泡事件的demo,教你实现js的冒泡处理,适用于各种浏览器

    冒泡排序及其改进算法C语言实现 冒泡排序及其改进算法C语言实现 冒泡排序及其改进算法C语言实现

    3进一步改进的冒泡排序,如果在某次冒泡过程中,最后一次进行交换的位置为flag,则表示flag之后的序列已经有序,那么下一次冒泡就无需比较flag之后的序列,即只要比较到flag就可以结束此次冒泡过程。当flag=0时,...

    JavaScript事件冒泡与取消事件冒泡代码演示

    本段代码演示了如何使用JavaScript取消HTML事件的冒泡,即当后代元素的事件被触发时,祖先元素的相同事件也会被触发。...关键词:事件冒泡、取消冒泡、单击事件。用途:学习如何使用JavaScript取消HTML事件的冒泡。

    php 实现冒泡排序

    用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序用php实现冒泡排序

    冒泡8.c 使用C语言实现的冒泡

    冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c 使用C语言实现的冒泡冒泡8.c ...

    【JavaScript源代码】javascript事件冒泡,事件捕获和事件委托详解.docx

    并不是所有的事件都有冒泡现象,比如如下几个:blur事件 ,focus事件, load事件 2、事件委托:事件捕获恰好与事件冒泡相反,它从顶层祖先元素开始,直到事件触发元素。 js事件捕获一般通过DOM2事件模型...

    事件冒泡解决方案

    div 里面绑定div 2个DIV都绑定了 click事件,怎么点里面的div不会执行到外面DIV的事件,冒泡!这个案例 比较简单,仅供大家学习

Global site tag (gtag.js) - Google Analytics