I also had this problem. The solution that worked in my case was using the tabindex property on the HTML element.
I was using ng-repeat
for some li elements inside a list and I was not able to bring focus to the first li using .focus(), so I simply added the tabindex attribute to each li during the loop.
so now <li ng-repeat="user in users track by $index" tabindex="{{$index+1}}"></li>
That +1 was index starts from 0. Also make sure that the element is present in DOM before calling the .focus() function
I hope this helps.