I'm using <div ng-controller="myController">, but AngularJS doesn't get initialized properly.
In JSF ordinary HTML tag such as a div isn't part of the JSF component tree. So you've found the blind spot of AngularFaces 2.0: it can't perform it's magic because simply doesn't see the div. A future version of AngularFaces will fix this. Until then, replace the <div> by an <h:panel layout="block" ng-controller="myController">. The HTML code is identical, but this this AngularFaces can add the code needed to run AngularJS.
But since there's a second bug, that still doesn't do the trick. You have to use both:
<h:body id="angular" style="padding-left:10px">
<form id="myForm" style="width: 700px">
<h:panelGroup ng-app="CarDealer" ng-controller="CarDealerController" angularJSFile="index.js">
<div ng-app="CarDealer" ng-controller="CarDealerController">
Of course, that's a work-around that will break in AngularFaces 2.1, which fixes both bugs.
Angular shows me an error message containing the sentence "Module 'angularfaces' is not available!" (among many other things).
Most likely you're using a plain HTML element to activate the ng-controller (see previous question). Replace it by replace the <div> by an <h:panel layout="block" ng-controller="myController">, as described above. Also see the hints on a similar question on GitHub - it shows you several ideas to analyse the problem.
"The button/link/text component needs to have a Form in its ancestry. Please add <h:form>."
Sometimes this messages refers to <ngsync>. It has to be put into the form tag, to.