У меня есть форма с кнопкой для поиска сотрудника, которая обрабатывается MD-диалогом.Когда кто-то нажимает кнопку, запускается эта функция:
//Employee Lookup button
$scope.emplLookupButton = function(){
mdDialogService.emplLookupDialog()
.then(function(res){
$scope.selectedEmpl = res;
return $scope.selectedEmpl;
}).catch(()=>{});
};
Эта функция вызывает фабрику, которую я использую как сервис:
angular.module('moduleNameHere').factory('mdDialogService',
function($mdDialog){
let parentEl = angular.element(document.body);
let employeeMain = '';
function emplLookupDialog($event){
return $mdDialog.show({
parent: parentEl,
targetEvent: $event,
templateUrl: '**template name here**',
clickOutsideToClose: true,
hasBackdrop: true
}).then(function(res){
employeeMain = res;
return employeeMain;
}).catch(()=>{});
}
return {
employeeMain: employeeMain,
emplLookupDialog: emplLookupDialog
};
});
Все это работает хорошо.Однако в моем шаблоне я даю пользователям возможность щелкнуть сотрудника и вернуть его значение в родительскую форму.Я хотел бы взять возвращенные данные из md-диалога здесь и установить его равным модели, которую использует конкретный вход, в исходном контроллере.
Я могу консоль записывать данные из диалога вфабрика, поэтому я знаю, что он возвращается из диалогового контроллера туда, но я не могу передать его с фабрики на исходный контроллер.
Возвращенные данные из исходного блока кода не возвращаютсячто-нибудь, предположительно потому, что он ищет возврата, прежде чем что-либо было отправлено.Чтобы обойти это, я попытался сделать следующее:
$scope.userInputMain = {
employee: mdDialogService.employeeMain
};
Но это никуда меня не привело.Что я пропустил?