Web*_*nik 8 javascript angularjs angularjs-directive
如何在Angular 1.1.5的输入中执行"粘贴"事件的功能?我知道有一个ng-change输入指令.但每次输入更改时它都会触发,我在初始粘贴时只需要一次.
用例:我有一个URL输入.我想在用户粘贴URL后执行一个函数.用户也可以手动输入URL并按Enter键执行该功能.
-
更新:自Angular 1.2.0起,ngPaste是一个原生指令.
Web*_*nik 28
从Angular 1.2.0开始,有一个ngPaste指令.使用以下方式:
<input type='text' ng-paste='handlePaste($event)'>
Run Code Online (Sandbox Code Playgroud)
要立即传递价值,请使用:
<input type='text' ng-paste='handlePaste($event.clipboardData.getData('text/plain'))'>
Run Code Online (Sandbox Code Playgroud)
在功能中你应该使用originalEvent
<input type="text" ng-paste="paste($event)" />
Run Code Online (Sandbox Code Playgroud)
功能:
$scope.paste = function (e) {
console.log(e.originalEvent.clipboardData.getData('text/plain'));
}
Run Code Online (Sandbox Code Playgroud)
想要分享我的解决方案以支持没有剪贴板API的浏览器。这可以在任何角度支持的浏览器上使用。
HTML:
<input type="text" ng-paste="copyPasted($event)">
Run Code Online (Sandbox Code Playgroud)
JS:
$scope.copyPasted = function ($event){
if(typeof $event.originalEvent.clipboardData !== "undefined"){
$scope.handlePastedData($event.originalEvent.clipboardData.getData('text/plain'));
} else { // To support browsers without clipboard API (IE and older browsers)
$timeout(function(){
$scope.handlePastedData(angular.element($event.currentTarget).val());
});
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22909 次 |
| 最近记录: |