2

ng-pasteテキストエリアにリンクを貼り付けるときにテキストエリアに使用しました。その値を保存するカスタム関数を呼び出しています。次のコードを参照してください

<textarea rows="1" ng-model="myObj.content"
              ng-paste="getContent(myObj)">
 </textarea>

$scope.getContent = function(a){
    console.log(a.content);
}

しかし、コンソールでは常にundefined価値があります。オブジェクトの値を取得するにはどうすればよいですか?

4

2 に答える 2

5

モデルを関数に渡すことは、既に を指定しているため意味がありません。ng-modelそのため、ユーザーが に何かを入力すると、その値が更新されますtextbox。変更を追跡したい場合は$watch、モデルに をセットアップするか、 を使用して関数を指定できますng-change

ユーザーが何を貼り付けたかを知りたい場合は、別の話です。取り扱いng-pasteが難しい場合があります。実際のイベントにアクセスするには、jQuery前にインクルードしてからangularjs、たとえば次のようにするのが最も簡単です。

HTML テンプレート

<textarea rows="3"
          placeholder="copy/paste here..."
          ng-init="content = null"
          ng-model="content" 
          ng-paste="paste($event.originalEvent)">
</textarea>

コントローラ

$scope.paste = function (event) {
  var item = event.clipboardData.items[0];
  item.getAsString(function (data) {
    console.log(data);
  });
};

関連プランカーはこちらhttp://plnkr.co/edit/ea5y5j


ここに画像の説明を入力

于 2014-10-27T08:17:34.843 に答える