5

Bir yönergenin bağlantı işlevine bir Angular Material dialog koymaya çalışıyorum. Kavramsal olarak, bunun neden mümkün olmayacağını göremiyorum. Dokümanlara göre, $mdDialog.show kapsamı ve $mdDialog.hide();, $mdDialog.show nesnesi tarafından tanımlanan bir denetleyicide duruyor. Ben diyalog penceresini açabildim - ve closeModal() (exec.log tarafından söyleyebilirim) olsa bile, $mdDialog.hide() asla yürütmez ve modal asla gizlenmez.

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.'; 

        }); 

       }; 

      } 

     }; 
    }]); 

Bu neden çalışmıyor? Bir yönerge içinden mdDialog modelini tanımlamak mümkün değil mi? İşte

bir Plnkr ben müdahele ettik edilir:

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

Teşekkür bir demet. Bu beni birkaç saatliğine delirtiyor.

cevap

4

Düzenlendi: "gizle-in" css sınıfıyla birlikte, eğer bu dosyayı kaldırırsanız, gizlilik çalışır.

Köşeli malzeme için git'i kontrol edin, diyalogu göstermek için "geçiş giriş" sınıfını kullanarak "geçiş yap" sınıfını $ mdDialog ve gizlemek için "geçiş yap" gibi görünüyor, böylece "geçişi" de eklerseniz devre dışı bırakılır. saklamak.

+0

Yardımın için teşekkürler! Ne yazık ki, hata hala devam ediyor -> http://plnkr.co/edit/qVczPkuZgtL2CCtLRFrH?p=preview –

+0

ben css sınıfını kaldırdığımda göründüğüm gibi yorumumu düzenledim – kwangsa

+0

Başar. Bunu nasıl anladın? Bunu bir milyon yılda anlayamazdım. Çok teşekkürler. –

İlgili konular