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
Vous devez vous connecter pour publier un commentaire.
Édité : le problème est à la "transition" de la classe css, si vous retirez le cacher œuvres.
Vérifier le git angulaire du matériel, il semble que $mdDialog à l'aide de "transition" de la classe pour afficher la boîte de dialogue et de "transition" pour le cacher, donc si vous incluez "transition" puis il va désactiver le cacher.
j'ai édité mon commentaire comme il semble que lorsque je supprime la classe css il fonctionne
Génial. Comment avez-vous comprendre cela? Je n'aurais pas pensé que dans un million d'années. Merci beaucoup.
Essai & erreur, j'ai l'habitude de tout supprimer pour que le strict minimum et commencer à ajouter des chose
Pue que, parfois, c'est la seule technique 🙂 merci pour l'aide!
OriginalL'auteur kwangsa