Datepickers for departure and return dates
Excess controllers?
This code appears to be similar to several examples of UI Bootstrap datepickers - e.g. this plunker. Initially the layout looked fine but then I realize that there are three total instances of DatePickerController - one for each &lt;date-picker&gt; plus the wrapping &lt;div ng-controller=&quot;DatePickerController as dp&quot;&gt;. My presumption is that you should be able to implement this without that wrapping DatePickerController but maybe there is something I am missing.
Descriptive function/class names
I noticed that the functions for the controller and the directive are named Controller and directive, respectively. Most widely-accepted style guides call for class names in UpperCamelCase while method/function names should be in lowerCamelCase (e.g. the Google Style Guide). As your application grows it would be advisable to make the function names more descriptive - e.g. datePickerController and datePickerDirective.
Functions only called once
Do the methods toggleDepartDate() and toggleReturnDate() in FormDatepickerController get called anywhere other than the controller initializer (i.e. immediately after they are declared)? If not, then the functionality within them could be moved outside the functions.
IIFEs could be combined
There are two IIFEs in datepicker-controller.js. Those could be combined into a single IIFE because there isn't any reason to have them separated (at least code-wise).