AngularJS: focus
HTML
<script src="http://ci.angularjs.org/job/angular.js-angular-master/ws/build/angular.js"></script>
<html ng-app="my">
<div ng-controller="Main" ng-init="focusIndex=3">
Which input should be focused?:
<button ng-click="$parent.focusIndex=$index" ng-repeat="i in [0,1,2,3,4]"> {{$index}} </button>
<hr />
<ul>
<li ng-repeat="i in items">
{{$index}} <input type="text" focus="$index==focusIndex" /> [{{$index==focusIndex}}]
</li>
</ul>
</div>
</html>
JavaScript
function Main($scope) {
$scope.items = [1,2,3,4,5];
}
angular.module('my', []).directive('focus', function() {
var timer;
return function(scope, elm, attr) {
if(scope.$eval(attr.focus)) {
if (timer) clearTimeout(timer);
timer = setTimeout(function() {
elm.focus();
console.log('focus', elm);
}, 0);
}
};
});