AngularJS Matériau à l'aide de $mdDialog dans une directive fonction de liaison

Je suis en train de mettre un Angulaire de dialogue Matériau dans une directive de la fonction de liaison. Sur le plan conceptuel, je ne vois pas pourquoi ce ne serait pas possible. Selon les documents, la $mdDialog.show est sur la portée et la $mdDialog.hide(); repose dans un contrôleur défini par le $mdDialog.show objet. J'ai été en mesure d'obtenir la boîte de dialogue pop—up, et bien que closeModal() exécute (je peux dire par la console.journal), $mdDialog.hide() n'est jamais exécuté et le modal ne se cache jamais.

angular.module('app', ['ngMaterial'])
    .directive('addLayer', ['$mdDialog', function($mdDialog) {

        return {

            template: '<h1 ng-click="openDialog()">Open Dialog</h1><div>alert: {{alert}}</div>',
            scope: {},
            link: function(scope) {

                scope.alert = '';
                scope.addLayerDialog = function() {

                    $mdDialog.show({

                        parent: angular.element(document.body),
                        templateUrl: {...},
                        controller: function($scope, $mdDialog) {

                            $scope.hide = function() {
                                $mdDialog.hide();

                            };

                            $scope.cancel = function() {

                                $mdDialog.cancel();

                            };

                            $scope.answer = function(answer) {
                                console.log($mdDialog.hide('answer'));
                                $mdDialog.hide(answer);

                            };
                        }

                    }).then(function(answer) {

                        scope.alert = 'You said the information was "' + answer + '".';

                    }, function() {

                        scope.alert = 'You cancelled the dialog.';

                    });

                };

            }

        };
    }]);

Pourquoi ça ne marche pas? Est-il tout simplement pas possible de définir un mdDialog modale de l'intérieur d'une directive?

Ici est un Plnkr j'ai été bricoler avec:

http://plnkr.co/edit/qVczPkuZgtL2CCtLRFrH?p=preview

Merci beaucoup. Ceci a me rend fou pendant plusieurs heures.

OriginalL'auteur nikk wong | 2015-06-09