2016-04-14 14 views
1

すべてが問題になります。ユーザーが入力中に入力テキストを確認したいときに、カンマを入力すると入力が有効になりますng-click="action()" Comma- = "アクション()" と入力、私は私がこれまで持っているもの。..なし欠如と)(、NG-変化に入力テキストにカンマが入力されたときにAngularjsが表示される

をscope.watchを試してみました:

<input id="tagInsert" type="text" name="newTag" ng-model="newTag" ng-model-options="{debounce: 100}" typeahead="tag for tag in getTags($viewValue)" class="form-control" typeahead-loading="loadingTags" ng-keydown="addInterestOnEvent($event)" ng-disabled="interestLimit" autocomplete="off" ng-change="alert('stuff')" /> 

コントローラー:

$scope.$watch('newTag', function(val) { 
      if (val.keyCode == 188) { // KeyCode For comma is 188 
      alert('comma added'); 
      action(); 
      } 
    }); 

は、私はまた、NG-のKeyDownで試してみました:

$scope.addInterestOnEvent = function (event) { 
     if (event.which !== 188) return; 
     event.preventDefault(); 
     $scope.addInterest(); 
    }; 

これが動作しないです。

EDIT

それはそれは、サーバーを再起動するのを忘れる私だっng-keydown="action()"で動作ありません。

+0

は非常に単純なディレクティブ 'commaTyped'の作成を探す必要があります。 – dfsq

答えて

0

$ watchロジックが間違っています。$ watchは、モデル値の変更を探すのに使用されます。 thisを参照してください。すべての$ watchは、式が変更されたときにコールバックを登録します。あなたのケースでは

$scope.$watch('newTag', function(nv,ov) { 
     if (nv!==ov){ 

     action(); 

    } 
}); 

あなたはディレクティブを書いて、,

関連する問題