Hey guys,
I found a workaround for my issue more than a week ago, thanks to everyone who provided input.
What I did in the end was generate all the page content in the backend once you've hit a page -
Example: If you have a main page and you want to access
mydomain.com/contact (assuming you also use angular routes to populate your ng-view):
contact.erb (the partial page you want to load) contains:
Contact Us! ABCD Company
Original Source Code:
<h2>Welcome!</h2>
<div ng-view>
//leave this blank -- content will be loaded here via ajax
</div>
New Source Code:
<h2>Welcome!</h2>
<div ng-view>
//generate contact page here
<%= // load contact.erb %>
</div>
So when it's generated and you view the source, it'll look like:
Old view source:
<h2>Welcome!</h2>
<div ng-view>
</div>
New view source:
<h2>Welcome!</h2>
<div ng-view>
Contact Us! ABCD Company
</div>
...the output will still be the same, except that if you visit the page on lynx or other non-javascript browsers, you'll see the same thing.
Angular routing will still load the contact page, so with the new code, your "Contact Us! ABCD Company" will get replaced by "Contact Us! ABCD Company" -- but the good thing is when you click on other links, it doesn't need to reload the whole page. In this case, you still get to keep Angular JS features!