Как получить paremeter для обещания. Наконец, после clickOutsideToClose и $ mdDialog.hide () - PullRequest
0 голосов
/ 09 ноября 2018

Я открываю $ mdDialog

$scope.openDialog = function(){
  $mdDialog
    .show({
      // ...
      clickOutsideToClose: true,
      controller: MyDialogController
    })
    .then(function(successData) {
      console.log("Closed as success: " + successData);
      // Closed as success: hidden_from_button
    })
    .catch(function(errorData) {
      console.log("Closed as error: " + errorData);
    })
    .finally(function(closeData) {
      console.log("On every close data: " + closeData);
    });
};

function MyDialogController($scope, $mdDialog) {
  $scope.hide = function(){
    console.log("Close 1");
    $mdDialog.hide('hidden_from_button');
  }
}

Я хочу узнать, как отправлять параметры в функции .finally и .catch $mdDialog. В частности, когда диалог закрыт с параметром clickOutsideToClose: true. Я не могу найти способ сделать это.

Это соответствующий код моего диалога:

<md-dialog>
  <md-toolbar>
    <md-button ng-click="hide()">
    </md-button>
  </md-toolbar>
  <md-dialog-content>
    <!-- Some more code -->
  </md-dialog-content>
</md-dialog>

Я хотел бы иметь возможность печатать сообщения:

  1. Closed as success: hidden_from_button (что я уже сделал)
  2. Closed as error: data_passed_as_error
  3. On every close data: data_passed_every_time

Я пытался добавить к MyDialogController функцию:

$scope.on("$destroy", function(ev) {
  console.log("Close 2");
  ev.preventDefault();
  $mdDialog.cancel('data_passed_as_error');
}

Но печатный вывод всех связанных console.log этого действия:

Close 2
Closed as error: undefined
On every close data: undefined

Что говорит мне, что параметр не принимается. Кроме того, если я использую эту функцию, после закрытия диалога с ng-click="hide()", последняя функция вызывается также. Это результат всех связанных console.log нажатий на кнопку закрытия:

Close 1
Close 2
Closed as success: hidden_from_button
On every close data: undefined

Я хочу правильно обрабатывать $mdDialog и иметь возможность отправлять данные в различные функции .finally, .then и .catch обещания, которые оно создает, без коллизий друг с другом.

Мне нужно отправить специальный параметр, когда пользователь нажимает за пределами диалогового окна на родительский контроллер. Как мне это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...