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