Using AngularJS promises to perform
DOM manipulation at the right time
directive('focus', function($timeout){
return {
restrict: 'A',
scope: {
'focus': '=focus'
},
link: function(scope, elem){
scope.$watch('focus', function(val){
if (val)
elem.focus();
else
elem.blur();
});
}
}
})
directive('focus', function($timeout){
return {
restrict: 'A',
scope: {
'focus': '=focus'
},
link: function(scope, elem){
scope.$watch('focus', function(val){
if (val)
$timeout(function(){ elem.focus(); });
else
$timeout(function(){ elem.blur(); });
});
}
}
})
You think you need it, but you don't.
directive('focus', function($timeout){
return {
restrict: 'A',
scope: {
'focus': '=focus'
},
link: function(scope, elem){
scope.$watch('focus', function(val){
if (val)
$evalAsync(function(){ elem.focus(); });
else
$evalAsync(function(){ elem.blur(); });
});
}
}
})