2016-05-18 4 views
1

Ich folgte documentation, um Arbeit md-Dialog zu produzieren, aber ich habe auf dysfunktionalen Knopf fest, der Dialog auslöst. Sobald der Dialog geöffnet und geschlossen wurde, scheint der Auslöser (alles, was Skript in diesem Controller verwendet) seinen Job nicht zu erfüllen.Md-Dialog-Dysfunktion Trigger-Taste in Md-Dialog-Controller gewickelt

Hier ist CodePen und Code.

var app = angular.module('app', ['ngMaterial', 'ngAnimate']); 

// Dialog controller 
app.controller('showDialogCtrl', 
    function ($scope, $mdDialog) { 
    // Showing order form dialog 
    $scope.showDialog= function($event){ 
     $mdDialog.show({ 
     targetEvent: $event, 
     clickOutsideToClose: true, 
     scope: $scope, 
     template: 
      '<md-dialog>' + 
      ' <md-dialog-content>Hello!</md-dialog-content>' + 
      ' <md-dialog-actions>' + 
      ' <md-button ng-click="closeDialog()" class="md-primary">' + 
      '  Close' + 
      ' </md-button>' + 
      ' </md-dialog-actions>' + 
      '</md-dialog>', 
     parent: angular.element(document.body), 
     controller: DialogController, 
     }); 
     function DialogController($scope, $mdDialog) { 
     $scope.closeDialog = function() { 
      $mdDialog.hide(); 
     }; 
     }; 
    } 
});  

<md-button ng-controller="showDialogCtrl" ng-click="showDialog($event)"> 
Click 
</md-button> 

Antwort

1

Sie geben das Mutter $scope zu Ihrem Dialog, die automatisch entfernt wird, wenn Sie den Dialog zu schließen. Fügen Sie preserveScope: true zu Ihrer Dialogkonfiguration hinzu, damit es nicht gelöscht wird, sobald Sie den Dialog schließen.

Docs: https://material.angularjs.org/HEAD/api/service/$mdDialog

+1

Ich weiß, dass wir nicht in Kommentar danken sollten, aber sie konnten eine gedämpfte Art und Weise machen Person zu danken, die richtige Antwort gab. Ich fühle mich besser als. Vielen Dank! :) –