Думаю тут лучше всего использовать две директивы:
1. Одну для формы, например HintForm. В ней объявите контроллер директивы, в котором вы будете хранить актуальные значения инпутов.
2. Для самих инпутов, например Hint. При объявлении директивы укажите require: ^HintForm, тогда в функции  link вам будет доступен контролер из HintForm. При изменении значения в инпуте вы будете записывать его (значение) в контроллер HintForm.  Поскольку контроллер HintForm  шарится между всеми Hint-ами, то через него любая директива Hint будет знать актуальные значения инпутов во всей форме.
Это похоже на то, как директива form взаимодействует с вложеными директивами ng-model.
Пример: 
http://plnkr.co/edit/TQQWJflPSQx5jDh097bM