.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属性,可以看出,当表达式为字符串的时候,进行一个手动的解析。如果是函数,直接返回。

最新文章

  1. 通过WebStorm上传代码至github
  2. BugFree 测试管理系统
  3. 37-more 简明笔记
  4. 浅析extendedLayout, automaticallyAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars
  5. (WinForm)文件夹状态监控,最小化到托盘,开机自启动
  6. 精通CSS+DIV基础总结(三)
  7. 让安卓app支持swf的一个播放器,和自己编写的音乐管理程序
  8. H5 实现图片上传预览
  9. windows线程池
  10. What is 软件工程
  11. Js分支结构 switch--case
  12. Handler 、 Looper 、Message异步消息处理线程机制( hander消息机制原理)
  13. 解决Android LogCat 输出乱码的问题(转)
  14. svn各种箭头的含义
  15. 第32课 初探C++标准库
  16. js中常见面试问题-笔记
  17. UVALive 7712 Confusing Manuscript 字典树 查询与s的编辑距离为1的字符串数量
  18. VMware虚拟机克隆Linux系统引起的网卡问题
  19. 详解http之post
  20. JavaScript函数和数组总结

热门文章

  1. 2.在Cisco Packet Tracer里交换机默认网关的配置(实现跨网段telnet)
  2. ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍
  3. inotifywait实时监控文件目录
  4. nginx+django线上部署
  5. poj 2533Longest Ordered Subsequence
  6. 笔记-python-standard library-9.6 random
  7. 子窗体与父窗体调用对方js方法
  8. BZOJ 3420: Poi2013 Triumphal arch
  9. TCP/IP网络编程之优雅地断开套接字
  10. 随手正则写的 CSDN【只看楼主】功能