The Google crawler does execute javascript on the pages that it crawls. With AngularJS, there are a few steps you have to take to make sure that your application is getting crawled and indexed properly.
HTML5 Mode
You must use html5 mode.
Webserver Setup
For the html5 mode to work properly, you must configure your webserver so that requests to directories that don't exist get rewritten to index.html.
Sitemap
Google does not properly follow links in angularjs apps yet, therefore you must create a sitemap for all of your routes. This sounds like a pain to do, however, with proper build processes this can be a very automated process. (gulp, grunt, etc.)
Cons
This of course only applies to the google crawler. Other search crawlers such as Bing may not support javascript applications yet, though I wouldn't be surprised if this changes over the next year or two (if it hasn't already.)
Other considerations
One commonly missed problem with indexing angular apps is things like pagination and content that shows up after clicking a button. If these actions do not change the url, google will not crawl it. For example, say you have a page with a table using pagination and it has 3 pages. Google will only crawl the first page unless each page has a different url route such as /table/page/1
/table/page/2
/table/page/3
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…