К сожалению я не понимаю в каких случаях уместно использовать изолированный скоуп, а в каких нет :/
Я навешиваю валидацию на элемент + хочу также отдельно трекать другие изменения скоупа используя watch(например состояние dirty и тд.), делаю это подобным образом через изолированый скоуп из-за этого и проблема. И поместить все в одну директиву как то не правильно так как ngValidInput отвечает за влидацию элемента, а другая деректива просто подсвечивает когда поле стало dirty...
.directive('ngValidInput', function () {
return {
scope: {
input: '=ngValidInput'
},
link: function (scope, el, attr) {
scope.$watch('input.$viewValue', function () {
scope.input.$invalid && scope.input.$dirty ? el.show() : el.hide();
});
}
};
})