2015-01-05 9 views
12

Chcę wyłączyć wklejanie kopii w obszarze tekstowym za pomocą polecenia angularJs. Próbowałem to zrobić z NG-pasty, tak:Wyłącz funkcję Wytnij, Kopiuj i Wklej dla pola tekstowego za pomocą AngularJs

Kontroler:

angular.module('inputExample', []) 
    .controller('ExampleController', ['$scope', function($scope) { 

    $scope.val = '1'; 
    $scope.past = function() { 

    console.log("d"); 
    $scope.val =" "; 

    } 
}]); 

HTML:

<input ng-paste="past()" ng-model="val" ng-pattern="/^\d+$/" name="anim" class="my-input" /> 

pole wejściowe ma stare dane (wstępnych danych wklej).

Blokowanie działa pasta drugim razem, to gdybym wkleić dane w polu tekstowym, dane będą obecne, ale na drugim pasty dane nie będą wklej, ale stara wartość danych nie jest oddalony.

+0

próbowałaś return false w przeszłości funkcji? –

Odpowiedz

0

można zrobić, jak to

app.controller('MainCtrl', function($scope, $timeout) {.... 
....... 
$scope.past = function() { 
    $timeout(function() { 
     $scope.val = " "; 
    }, 0); 
}... 

tutaj jest Demo Plunker

2
Try this; 

<input type="text" ng-paste="paste($event)" ng-model="name"/> 

kontroler

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.paste = function(e){ 
     e.preventDefault(); 
     return false 
    } 
}); 
+0

Dziękuję Mehmet Otkun To działa dobrze – Marimuthu

29

Spróbuj dokonywania dyrektywy, który nasłuchuje fot cut, copy i paste zdarzenia, a następnie zapobiec domyślnemu zdarzeniu akcja.

app.directive('stopccp', function(){ 
    return { 
     scope: {}, 
     link:function(scope,element){ 
      element.on('cut copy paste', function (event) { 
       event.preventDefault(); 
      }); 
     } 
    }; 
}); 

Użyj, dodając atrybut do pola wprowadzania.

<input stopccp ng-model="val" /> 

Plunker

Można również użyć dyrektyw ng-copy, ng-cut i ng-paste i bezpośrednio odwołać imprezę.

<input ng-cut="$event.preventDefault()" ng-copy="$event.preventDefault()" ng-paste="$event.preventDefault()" ng-model="val" /> 

Plunker

+1

Dziękuję, że jesteś kwantowy – Marimuthu

14

Najprościej:

<input ng-paste="$event.preventDefault();" placeholder='You cannot past here'> 

robocza here

Powiązane problemy