AngularJS Материал, отправляющий данные через MD-диалог на отдельный контроллер - PullRequest
0 голосов
/ 11 октября 2018

У меня есть форма с кнопкой для поиска сотрудника, которая обрабатывается 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
};

Но это никуда меня не привело.Что я пропустил?

...