我有一个angularjs指令,它侦听我的文本区域的粘贴事件:
element.on('paste', function (event) {
});如何使得到粘贴的文本?我试过:
event.clipboardData.getData('text/plain')..。以及:
event.originalEvent.clipboardData ..。但两者都没起作用。任何建议都会有帮助。
发布于 2014-09-14 08:45:15
其实很简单。您可以使用element.val()获取文本,但需要将其放入setTimeout中。
我为你做了一个例子。
Working: http://jsfiddle.net/vxcjw45d/
HTML:
<body ng-app="myApp">
<div ng-controller="myController">
<textarea paste-example></textarea>
<div>{{ pastedText }}</div>
</div>
</body>Javascript:
var myApp = angular.module('myApp', []);
myApp.controller('myController', function($scope) {
$scope.pastedText = '';
});
myApp.directive('pasteExample', function(){
var linkFn = function(scope, element, attrs) {
element.on('paste', function() {
setTimeout(function() {
console.log(element.val());
scope.pastedText = element.val();
scope.$apply();
}, 5);
});
};
return {
restrict: 'A',
link: linkFn
};
});https://stackoverflow.com/questions/25830824
复制相似问题