5

मैं निर्देशक के लिंकिंग फ़ंक्शन में Angular Material dialog डालने का प्रयास कर रहा हूं। संकल्पनात्मक रूप से, मैं नहीं देख रहा हूं कि यह क्यों संभव नहीं होगा। दस्तावेज़ों के अनुसार, $mdDialog.show एक दायरे पर है और $mdDialog.hide();$mdDialog.show ऑब्जेक्ट द्वारा परिभाषित नियंत्रक में स्थित है। मैं पॉपअप में संवाद प्राप्त करने में सक्षम हूं- और closeModal() निष्पादित करता है (मैं console.log द्वारा बता सकता हूं), $mdDialog.hide() कभी निष्पादित नहीं होता है और मोडल कभी छुपा नहीं जाता है।

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

        }); 

       }; 

      } 

     }; 
    }]); 

यह क्यों काम नहीं कर रहा है? क्या निर्देश के भीतर से mdDialog मोडल को परिभाषित करना संभव नहीं है?

यहाँ एक Plnkr मैं को संवारता किया गया है है:

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

धन्यवाद एक गुच्छा। यह मुझे कई घंटों के लिए पागल कर रहा है।

उत्तर

4

संपादित: यह समस्या "संक्रमण-इन" सीएसएस वर्ग के साथ है, अगर आप इसे छुपा काम हटा देते हैं।

कोणीय सामग्री के लिए गिट की जांच करें, ऐसा लगता है कि इसे "संक्रमण-इन" वर्ग का उपयोग करके "संक्रमण-इन" वर्ग का उपयोग करके $ mdDialog संवाद और "संक्रमण-बाहर" को छुपाने के लिए लगता है, इसलिए यदि आप "संक्रमण-इन" शामिल करते हैं तो यह अक्षम हो जाएगा छिपाना।

+0

सहायता के लिए धन्यवाद! दुर्भाग्यवश, बग अभी भी बनी हुई है -> http://plnkr.co/edit/qVczPkuZgtL2CCtLRFrH?p=preview –

+0

मैंने अपनी टिप्पणी संपादित की क्योंकि ऐसा लगता है कि जब मैं सीएसएस कक्षा को हटाता हूं तो यह – kwangsa

+0

बहुत बढ़िया काम करता है। आपने इसे कैसे समझ लिया? मैंने यह नहीं पाया होगा कि दस लाख वर्षों में। बहुत धन्यवाद। –

संबंधित मुद्दे