Bizarre Angular template debugging technique no one really talks about

Bizarre Angular template debugging technique no one really talks about

Since angular templates are actually transformed by the angular compiler to javascript, this transformation gives us access to sourceMaps. This allows us to actually add breakpoints to our angular templates! 🤯

Although using this technique is not perfect at the moment, it is definitely good to know about its existence.

Structural Directive Breakpoints

It’s a cool trick to quickly inspect your angular *ngIf  context,  property binding or event binding event data! This also works with other structural directives like *ngFor too!

Let’s say you had a template node for a paragraph p with the *ngIf directive which was assigned an expression. Add a breakpoint to this node in your browser’s devtools.

It seems like whenever the expression evaluates to true or false, your breakpoint will get triggered and you can actually inspect the NgIfContext in your Local Scope to see if the resulting expression is true in the ctx.$implicit property.

You can also add the breakpoint to the *ngIf  attribute by putting it on it’s own line. This will enable you to inspect your component in the Local Scope every time change detection runs and the expression is evaluated.

This works with *ngFor as well.

Event Binding Breakpoints

Similarly you can also add breakpoints to your event binding expressions to debug the event context.

You can inspect the $event in the Local Scope of your debugger as well as find the component instance in the Closure under ctx

Bonus

As a bonus, you can also install Angular DevTools as a chrome extension which give’s you ability to inspect the properties of your component instance in real time among other cool debugging features!


Feel free to reach out and let me know how it works for you ;)

Happy Engineering!