我有一个angularjs指令,它监听我的textarea的粘贴事件:
element.on('paste', function (event) {
});
我如何获取粘贴的文字?我试过了:
event.clipboardData.getData('text/plain')
......和:
event.originalEvent.clipboardData
......但两者都没有奏效。任何建议都会有所帮助。
答案 0 :(得分:6)
element.val()
获取文本,但需要将其放入setTimeout。
我为你做了一个例子。
工作JSFiddle: 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
};
});