AngularJS – 点击复选框时聚焦输入元素

前端之家收集整理的这篇文章主要介绍了AngularJS – 点击复选框时聚焦输入元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当点击复选框时,是否有更清晰的方式将焦点委派给元素。这是我被黑客攻击的脏的版本:

HTML

<div ng-controller="MyCtrl">
    <input type="checkBox" ng-change="toggled()">
    <input id="name">
</div>

JavaScript的

var myApp = angular.module('myApp',[]);

function MyCtrl($scope,$timeout) {
    $scope.value = "Something";
    $scope.toggled = function() {
        console.debug('toggled');
        $timeout(function() {
            $('#name').focus();
        },100);
    }
}

JSFiddle:http://jsfiddle.net/U4jvE/8/

这个怎么样 ? plunker
$scope.$watch('isChecked',function(newV){
      newV && $('#name').focus();
    },true);

@asgoth和@Mark Rajcok是正确的。我们应该使用指令。我只是懒惰

这是指令版本。 plunker我认为一个很好的理由使其成为指令,你可以重用这个东西。

所以在你的html中,你可以为不同的集合分配不同的模态

<input type="checkBox" ng-model="isCheckedN">
<input xng-focus='isCheckedN'>


directive('xngFocus',function() {
    return function(scope,element,attrs) {
       scope.$watch(attrs.xngFocus,function (newValue) { 
            newValue && element.focus();
         },true);
      };    
});

猜你在找的Angularjs相关文章