2017-10-08 11 views
0

私のmdDialogポップアップのように思えます。返された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> 

私はこの問題は、それが返す約束である知っているが、それが動作しない理由を私は理解することはできません。

答えて

0

コントローラを1つ追加します。そのコントローラを$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); 
    }; 
    } 
}); 
関連する問題