mdDialog的返回承诺不起作用

时间:2017-10-08 09:40:59

标签: angularjs promise angular-material

好像我的mdDialog弹出窗口不能正常工作。

function () {
    $mdDialog.show({
        templateUrl: 'CameraPopup.html',
        clickOutsideToClose: true      
    }).then(function (answer){ //do something 

                               //with answer
})}

模板如下所示:

<md-dialog >
<form>
    <md-dialog-actions layout="column" >
        <span flex></span>
        <md-button ng-click="answer('camera')">
            Open Camera
        </md-button>
        <md-divider></md-divider>
        <md-button ng-click="answer('gallery')">
            Open Gallery
        </md-button>
    </md-dialog-actions>
</form></md-dialog>

我知道问题在于它返回的承诺,但我无法理解为什么它不起作用。

1 个答案:

答案 0 :(得分:0)

添加一个控制器。将该控制器传递到$mdDialog.show。将answer方法写入控制器。

function () {
       $mdDialog.show({
             controller: DialogController,
             templateUrl: 'CameraPopup.html',
             clickOutsideToClose: true      
          }).then(function (answer){ //do something with answer
        });
    }

<强>控制器

function DialogController($scope, $mdDialog) {
    $scope.answer = function(answer) {
      $mdDialog.hide(answer);
    };
  }
});