angular 右击事件的写法

.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是手动解析服务。

使用自定义指令,返回一个右击函数,$apply监视$scope的变化。

this.$get = [‘$filter‘, ‘$sniffer‘, ‘$log‘, function($filter, $sniffer, $log) {
$parseOptions.csp = $sniffer.csp;
promiseWarning = function promiseWarningFn(fullExp) {
    if (!$parseOptions.logPromiseWarnings || promiseWarningCache.hasOwnProperty(fullExp)) return;
    promiseWarningCache[fullExp] = true;
    $log.warn(‘[$parse] Promise found in the expression `‘ + fullExp + ‘`. ‘ +
        ‘Automatic unwrapping of promises in Angular expressions is deprecated.‘);
};
return function(exp) {
    var parsedExpression;
    switch (typeof exp) {
        case ‘string‘:
            if (cache.hasOwnProperty(exp)) {
                return cache[exp];
            }
            var lexer = new Lexer($parseOptions);
            var parser = new Parser(lexer, $filter, $parseOptions);
            parsedExpression = parser.parse(exp, false);
            if (exp !== ‘hasOwnProperty‘) {
                cache[exp] = parsedExpression;
            }
            return parsedExpression;
        case ‘function‘:
            return exp;
        default:
            return noop;
    }
};
}];

这是$parse服务的$get属性,可以看出,当表达式为字符串的时候,进行一个手动的解析。如果是函数,直接返回。

时间: 2024-11-06 13:49:46

angular 右击事件的写法的相关文章

获取鼠标在网页上的位置以及右击事件

js写法 document.getElementById("youji").oncontextmenu=youjiEvent;//指定这个元素 给他绑定右击事件 function youjiEvent(){//鼠标右击时显示菜单 alert(item.name); return false;//屏蔽网页本身的右击效果 } jquery写法 $(function(){ $('#youji').mousedown(function(e){ if(e.which==1){ alert(&qu

【javascript】jQuery判断用户右击事件

jquery 判断用户是鼠标是右击还是左击, // 1 = 鼠标左键 left; 2 = 鼠标中键; 3 = 鼠标右键 $(document).mousedown(function(e) { if(3 == e.which){ alert('这 是右键单击事件'); }else if(1 == e.which){ alert('这 是左键单击事件'); } }); [javascript]jQuery判断用户右击事件,布布扣,bubuko.com

鼠标右击事件

鼠标左击事件是我们常常遇到的,那么,如何写一个鼠标右击事件呢? 通常,鼠标有三个键:左键(1).中键(2).右键(3),jQuery通过e.which即可判断点击了哪一个按键,如果不通过e.which判断,则默认点击了鼠标左键.例如: $('.btn').mousedown(function(e){ if(3 == e.which){ alert('这是右键单击事件'); }else if(1 == e.which){ alert('这是左键单击事件'); } else{ alert('这是中键

Android中四种OnClick事件的写法

package com.example.dailphone; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.content.Intent; import android.net.Uri; imp

js右击事件

先贴代码: 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 <script type="text/javascript"> 7 window.onload = function(){ 8 //去掉默认的contextmenu事件,否

jquery监听事件on写法以及简单的拖拽效果

引子——关于jquery的某些写法 我先不对监听事件做解释,我们先来看下jquery的一些写法吧!我们最常用的是jquery的css()方法,相信大家都会用! 假如用css设置一个属性,我们写法如下: $("#haorooms").css("width","100px"); 假如多个属性呢?我们写法如下: $(".demo").css({"height":"100px","ba

杂记b---jquery.siblings(),HTML页时间戳转化为正常的时间显示,ng-click事件的写法

jQuery siblings() 方法返回被选元素的所有同胞元素,并且可以使用可选参数来过滤对同胞元素的搜索. 实例演示:点击某个li标签后将其设置为rgb(248,198,173)橙色样式,而其所有同胞元素去除#FFFFFF(白色样式) <div id="each"> <span>标签:</span> <ul class="right-topfloat"> <li style="background

C#父窗体右击事件实现

之前在博问上提问过,没人回答啊,豆太少没人权? 没注册钩子的话根本没办法弹出右键菜单啊,因为在父窗体内有一个容器,所以鼠标在右击时是无法触发窗体的mousedown事件的,即使把KeyPreview设置为true也一样无法触发 代码思路:注册鼠标钩子,在钩子的鼠标右击时回调函数里调用事件,事件里判断当前鼠标位置是否在当前窗口的工作区域内,是的话把右键菜单控件show出来 —————————————————————— 把api中钩子注册与卸载的函数重新在C#中装封一次 using System;

angular(20)---事件

Angular的作用域在本质上是分层次的:他们可以通过父子关系很自然地来回沟通.但通常,作用域不共享变量的,他们执行的功能往往各不相同,跟在父树上无关. 在这种情况下,我们可以通过在这个链上传递事件的方式在作用域之间通信. 什么是事件? Angular应用也可以相应Angular事件,这使得我们可以在应用中嵌套的各组件之间进行通信,即使这些组件在创建时并未考虑到其他组件. 注:Angular事件系统并不与浏览器的事件系统相通,这意味着,我们只能在作用域上监听Angular事件而不是DOM事件.