angular 호출 요소의 onfocus onkeydown onblur 등 이벤트

1594 단어
프로젝트에서 input 검증이 통과되면 다음 input로 전환하는 기능
물론 jqdom로 조작하는 것은 매우 간단합니다. 모두가 알다시피angular, mvc 데이터 모델로 분리를 제어합니다. 더 이상dom로 조작하고 싶지 않으면 어떻게 합니까?
다음 방법
<textarea style="height: 73px;min-height: 73px;resize: none "
          type="text"
          focus-me="item.Bake.FocusNext"
          maxlength="500"
          ng-model="item.Bake.PromoText" />

  
app.directive('focusDir',[ "$timeout","$parse" ,function($timeout,$parse) {
    return {
        link: function($scope, element, attrs) {
            var model = $parse(attrs.focusDir);
            $scope.$watch(model, function(value) {
               // console.log('value=',value);
                if(value === true) {
                    $timeout(function() {
                        element[0].focus();
                    });
                }
            });
            // to address @blesh's comment, set attribute value to 'false'
            // on blur event:
            element.bind('blur', function() {
               // console.log('blur');
                $scope.$apply(model.assign($scope, false));
            });
        }
    };
}] );

//Tip:   "$timeout","$parse" 

  
이 일은focus, 유사한 것들은kedown keyup 등등에 사용할 수 있습니다
참조:http://stackoverflow.com/questions/14833326/how-to-set-focus-on-input-field

좋은 웹페이지 즐겨찾기