angular 全局常用指令
2024-09-08 08:44:37
1.全局支持 enter快捷键触发事件
// 全局指令
app.directive('ngEnter', ['$window',"$timeout", ($window,$timeout) => {
return {
restrict: 'A',
link ($scope, element, attrs) {
element.bind('keypress', (ev) => {
ev = ev || $window.event;
if (event.keyCode === 13) {
$timeout(function () {
$scope.$eval(attrs.ngEnter);
});
//引入$timeout 解决渲染问题
ev.preventDefault ? ev.preventDefault() : ev.returnValue = false;
return false;
}
$window.event ? ev.cancelBubble=true : ev.stopPropagation();//清除冒泡
});
element.on('$destroy', function () {
element.unbind('keypress');
$scope.$destroy();
});
}
};
}]);
2.点击按钮之后禁用按钮,防止多重提交
app.directive('clickAndDisable', function() {
return {
scope: {
clickAndDisable: '&'
},
link: function(scope,element, iAttrs) {
element.bind('click', function() {
element.prop('disabled',true);
scope.clickAndDisable().finally(function() {
element.prop('disabled',false);
})
});
}
};
});
3.判断 ng-repeat 渲染完成后操作
app.directive('repeatFinish',function(){
return {
link: function(scope,element,attr){
if(scope.$last == true){
console.log("ng-repeat遍历完成");
scope.$eval( attr.repeatFinish )
}
}
}
});
最新文章
- [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
- asp.net mvc bundle中数组超出索引
- .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】
- Spark 2.6.1 源代码在 eclipse 的配置
- mac下开发IOS代码管理
- require和include的区别
- 10 个免费的 jQuery 可视化编辑器插件
- 堆heap和栈Stack(百科)
- 用QT创建新风格: QStyle
- TimerTask实现定期检查数据库操作
- sublime text3 配置使用
- exif.js 旋转图片
- Python数据类型深入学习之字符串
- js ·节点的知识点
- Linux Centos 迁移Mysql 数据位置
- hive中的分桶表
- html 字符串 生成 pdf 完美解决中文不显示
- Centos 7 RabbitMQ + Haproxy 集群高可用部署
- 【lintcode】834. Remove Duplicate Letters
- css画图那些事
热门文章
- JavaScript--clientX,clientY、pageX,pageY、offsetLeft,offsetTop/offsetWidth,offsetHeight、scrollLeft,scrollTop/scrollWidth,scrollHeight、clientHeight,clientWidth区别
- Laravel 虚拟开发环境 Homestead
- 分布式Jmeter
- MVVM框架搭建
- Selenium-------ActionChainApi接口详解
- shell日常使用整理
- Lib1vent:10链接监听器接受TCP链接
- AT3728 Squirrel Migration
- Linux Shell 教程
- HZOJ string