2016-05-12 8 views
0

私は現在の入力フォーカスを角度とタイプスクリプトで動的に取得しようとしています。 angle.element([selector])。focus(handler)関数を使用していますが、入力をクリックしてもトリガーしません。AngularJS:angular.element関数で現在のフォーカスをdinamically取得する

これは私のコードです:

class TemplateController { 
    lastFocused: HTMLInputElement; 

    static $inject = ['$scope']; 
    constructor(private $scope: ng.IScope) { 

     angular.element("input[type='text']").focus((): void => { 
      this.lastFocused = document.activeElement as HTMLInputElement; 
      console.log("FOCUSED"); 
     }); 
    } 
} 

angular 
    .module("app") 
    .controller("[...]templateController", TemplateController); 
} 

そして、これは私のhtml(入力スニペット)である:

... 

<input class="form-control" type="text" id="title" name="title" size="30" ng-maxlength="1000" required /> 

... 

私が間違ってやっていますか?事前に

感謝:)

編集:私はinput要素にNG-焦点属性を使用することで、この問題を解決することができました

を解決:

<input class="form-control" type="text" id="title" name="title" size="30" ng-maxlength="1000" required ng-focus="templateCtrl.setFocusedElement()" /> 

とコントローラ内部:

setFocusedElement(): void { 
    this.$scope.lastFocused = document.activeElement; 
} 

これが私のために正常に動作します:)

答えて

0

angular.element('input').triggerHandler('focus');

またはそれが

angular.element('input').triggerHandler('click');

動作しない場合を試してみてください
関連する問題