Google can execute AJAX & JavaScript for indexing, you can read the below link for more detailed information:
Ajax crawling full specification: https://developers.google.com/webmasters/ajax-crawling/docs/specification
From the above link you will know why some AngularJS websites use '#!' in the url instead of '#' and have the following meta '<meta name="fragment" content="!">' in the html.
Sitemap.xml will help Google to crawl your web pages, you can also consider prerender for example: https://prerender.io/documentation/install-middleware.
Google Webmater Tools and Fetch As Google enable you to test if Google can crawl your web pages.