Если в директиве написать вот так, то срабатывает только при изменении нужного инпута
DirectivesApp.directive('calendarChange', ['$document', '$timeout', function($document, $timeout) {
return {
restrict: 'AE',
link: function(scope, element, attrs) {
$timeout(function() {
var $inputCalendar = document.getElementById('blockCalendar').getElementsByClassName('calendar_input');
angular.element($inputCalendar).on('change', function() {
console.log(scope.item);
});
/*$inputCalendar.on('change', function() {
console.log(scope.item);
});*/
}, 500);
}
};
}]);