मैं निर्देशक के लिंकिंग फ़ंक्शन में 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
धन्यवाद एक गुच्छा। यह मुझे कई घंटों के लिए पागल कर रहा है।
सहायता के लिए धन्यवाद! दुर्भाग्यवश, बग अभी भी बनी हुई है -> http://plnkr.co/edit/qVczPkuZgtL2CCtLRFrH?p=preview –
मैंने अपनी टिप्पणी संपादित की क्योंकि ऐसा लगता है कि जब मैं सीएसएस कक्षा को हटाता हूं तो यह – kwangsa
बहुत बढ़िया काम करता है। आपने इसे कैसे समझ लिया? मैंने यह नहीं पाया होगा कि दस लाख वर्षों में। बहुत धन्यवाद। –