В этом HTML-файле
<fieldset class="row">
<status-message status="housePlanEditCtrl.message"></status-message>
<legend class="fieldset-legend">HVAC Design Report</legend>
<file-manager
upload-only="true"
accept=".pdf, application/pdf"
label="HVAC Design Report"
input-id="HvacDesignReport"
files="housePlanEditCtrl.housePlan.HvacDesignReport">
</file-manager>
</fieldset>
У меня есть пользовательская директива файлового менеджера, которая вызывается для ввода
const FILE_TYPE_ERROR = {
type : 'error',
text : 'File type not allowed.',
dismissable : false
};
function fileManager ($timeout) {
return {
scope : {
LocalFiles : '='
},
restrict : 'A',
link : (scope, element, attrs, fileManagerCtrl) => {
element.bind('change', function onChange (event) {
let parentScope = scope.$parent.$parent;
$timeout(()=>{
if (this.accept === 'application/pdf') {
var ext = this.value.match(/\.(.+)$/)[1];
switch (ext) {
case 'pdf':
break;
default:
alert('File type error.');
this.message = Object.assign({}, FILE_TYPE_ERROR);
this.value = '';
}
}
parentScope.fileManagerCtrl.files.push.apply(parentScope.fileManagerCtrl.files, _values(event.target.files));
parentScope.fileManagerCtrl.localSelectedCallback();
}, 0);
});
}
};
}
, и компонент сообщения о состоянии для ошибок, возникающих вконтроллер.
<div class="status-message" data-ng-class="[statusMessageCtrl.getTypeClass(), {'dismissable' : statusMessageCtrl.status.dismissable}]" data-ng-if="statusMessageCtrl.isVisible">
<p class="status-text">{{statusMessageCtrl.status.text}}</p>
<button
data-ng-if="statusMessageCtrl.status.dismissable"
data-ng-click="statusMessageCtrl.onDismiss()"
type="button"
class="btn btn-dismiss btn-link btn-no-label"
aria-label="Dismiss Message">
<i class="fa fa-close" aria-hidden="true"></i>
</button>
</div>
Я хочу иметь возможность отображать этот компонент сообщения всякий раз, когда файл неправильного типа загружен через директиву файлового менеджера.Как я могу передать сообщение из файлового менеджера в директиву сообщения о состоянии при возникновении такой ошибки?