2017-10-08 1 views
0

On dirait que mon popup mdDialog ne fonctionne pas comme il se doit.La promesse retournée de mdDialog ne fonctionne pas

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

           //with answer 
})} 

Le modèle ressemble à ceci:

<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> 

Je sais que le problème réside dans la promesse qu'il retourne, mais je ne peux pas comprendre pourquoi il ne fonctionne pas.

Répondre

0

Ajouter un contrôleur. Passez ce contrôleur dans $mdDialog.show. Ecrivez la méthode answer dans le contrôleur.

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

Contrôleur

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