I than use dataLayer JS object set above in PageLoadRule and set PageView element.
Each view has a seperate Controller. I tried to put dataLayer object on top of each view but that also does not get track however, when I debug using _Satellite.getVar('Page Name') in Chrome Console, surprisingly it shows the value, but Network tab shows undefined.
I want to track Page views and than later some custom info using eVars and Props. Which is the best place to keep these configuration in an Angular 1.x based website.
From my personal experience, implementing Adobe Analytics via DTM on a single page app is always TRICKY. This implementation would require a lot of quick and dirty fixes, especially when you have a complex implementation with a lot of customization.
Before I suggest the possible fix to your problem, disclaimer, I am NOT an Angular JS expert so my solution would be more focused on Analytics Implementation workarounds than the Angular JS fixes
Try the updated code below (highlighted in BOLD) to capture the Page Views (not the literal page view but view changes):