2016-09-06 1 views
5

Ich bin Tring Dialog durch diese Art und Weise zu schließen:Winkelmaterial schließen mdDialog von Template-Richtlinie

showAlert(ev) { 
    this.mdDialog.show({ 
     restrict: 'E', 
     template:'<loader></loader>' + 
     ' <md-button ng-click="this.mdDialog.hide()" class="md-primary">' + 
    '  Close Dialog' + 
    ' </md-button>' , 
     parent: angular.element(document.body.childNodes[5]), 
     clickOutsideToClose:true 
    }); 
}; 
closeDialog() { 
    this.mdDialog.hide(); 
}; 

aber die Schaltfläche erscheint und nichts tun. Irgendeine Idee?

+0

Gibt es einen speziellen Grund dafür, warum Sie nicht $ mdDialog anstelle von this.mdDialog verwenden? Sie können $ mdDialog in Ihre eigene Direktive ohne Probleme injizieren ... – troig

+0

Danke, aber es spielt keine Rolle .. –

+0

Jede Chance, Ihren Code in einen Plünderer zu setzen? – troig

Antwort

1

Hier gehen Sie - CodePen

Markup

<div ng-controller="MyController as vm" class="md-padding" ng-cloak="" ng-app="app"> 
    <md-button class="md-primary md-raised" ng-click="vm.show($event)">Open</md-button> 
    </script> 
</div> 

JS

angular.module('app',['ngMaterial']) 

.controller('MyController', function($scope, $mdDialog) { 
    this.show = function(ev) { 
    $mdDialog.show({ 
     restrict: 'E', 
     template:'<loader></loader>' + 
     ' <md-button ng-click="vm.hide()" class="md-primary">' + 
    '  Close Dialog' + 
    ' </md-button>' , 
     parent: angular.element(document.body), 
     clickOutsideToClose:true, 
     targetEvent: ev, 
     controller: DialogController, 
     controllerAs: "vm" 
    }); 
    }; 
}); 

function DialogController($scope, $mdDialog) { 
    this.hide = function() { 
    $mdDialog.hide(); 
    }; 
} 
+0

Gibt es zu dieser Lösung ein "entsprechendes"? Ich habe einmal auf John Papas Richtlinie gelesen, um zu vermeiden, $ scope zu verwenden. –

+0

es hat mir nicht funktioniert. Ich habe auch versucht, $ scope zum Konstruktor zu bringen und dann in diesem scope.myscope = $ zu speichern, und weiterhin erscheint kein Fehler außer Wanrning: funktioniert möglicherweise nicht richtig in einem gescrollten, statisch positionierten übergeordneten Container. –

Verwandte Themen