angular 右击事件的写法
2024-08-29 21:16:57
.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属性,可以看出,当表达式为字符串的时候,进行一个手动的解析。如果是函数,直接返回。
最新文章
- 通过WebStorm上传代码至github
- BugFree 测试管理系统
- 37-more 简明笔记
- 浅析extendedLayout, automaticallyAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars
- (WinForm)文件夹状态监控,最小化到托盘,开机自启动
- 精通CSS+DIV基础总结(三)
- 让安卓app支持swf的一个播放器,和自己编写的音乐管理程序
- H5 实现图片上传预览
- windows线程池
- What is 软件工程
- Js分支结构 switch--case
- Handler 、 Looper 、Message异步消息处理线程机制( hander消息机制原理)
- 解决Android LogCat 输出乱码的问题(转)
- svn各种箭头的含义
- 第32课 初探C++标准库
- js中常见面试问题-笔记
- UVALive 7712 Confusing Manuscript 字典树 查询与s的编辑距离为1的字符串数量
- VMware虚拟机克隆Linux系统引起的网卡问题
- 详解http之post
- JavaScript函数和数组总结
热门文章
- 2.在Cisco Packet Tracer里交换机默认网关的配置(实现跨网段telnet)
- ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍
- inotifywait实时监控文件目录
- nginx+django线上部署
- poj 2533Longest Ordered Subsequence
- 笔记-python-standard library-9.6 random
- 子窗体与父窗体调用对方js方法
- BZOJ 3420: Poi2013 Triumphal arch
- TCP/IP网络编程之优雅地断开套接字
- 随手正则写的 CSDN【只看楼主】功能