Renderer service is now deprecated (as of Angular 4.x)
The new Renderer2 service doesn't have the invokeElementMethod.
What you can do is to get a reference to the element like this:
const element = this.renderer.selectRootElement('#elementId');
And then you can use that to focus on that element like so:
element.focus();
More on how selectRootElement
works here:
EDIT:
If the element doesn't get focused the common issue is that the element is not ready. (eg.: disabled, hidden etc.). You can do this:
setTimeout(() => element.focus(), 0);
This will create a macrotask that will run in the next VM turn, so if you enabled the element the focus will run properly.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…