angularjs:粘贴粘贴文本

时间:2014-09-14 06:51:04

标签: javascript angularjs angularjs-directive

我有一个angularjs指令,它监听我的textarea的粘贴事件:

element.on('paste', function (event) {
});

我如何获取粘贴的文字?我试过了:

event.clipboardData.getData('text/plain')

......和:

event.originalEvent.clipboardData 

......但两者都没有奏效。任何建议都会有所帮助。

1 个答案:

答案 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
    };
});