envoyer des variables à controller('résoudre') dans ngDialog
Simple moyen de l'ouverture modal avec ngDialog est-ce:
ngDialog.open({
template: 'template.html',
controller: 'someCtrl'
})
Comment puis-je envoyer des variables à la "someCtrl'?
Est-il une telle chose comme "résoudre" dans ngDialog?
Exemple angulaires-modal bootstrap:
$modal.open({
template: "<p>This is template</p>",
controller: "someCtrl",
resolve: {
someVar: function(){
return "Value of someVar"
}
}
})
ce serait ouvrir la modale d'envoyer le 'someVar" pour le Contrôleur responsable.
Mise à JOUR:
Il semble que la nouvelle version de ngDialog ajouté cette fonctionnalité:
ngDialog.open({
controller: function Ctrl(dep) {/*...*/},
resolve: {
dep: function depFactory() {
return 'dep value';
}
}
});
OriginalL'auteur Jahongir Rahmonov | 2015-01-13
Vous devez vous connecter pour publier un commentaire.
Regarde bien comme ngDialog ne supporte pas les résoudre et personnalisé injection dans le contrôleur. Toutefois, vous pourrez toujours le faire manuellement en créant
controller
exemple vous-même:puis dans le contrôleur, vous serez en mesure d'accéder injecté service/variable:
Il y a cependant un inconvénient avec cette approche, parce que lorsque le contrôleur dans instancié par
ngDialog
lui-même, il injecte également$element
service, qui est unangular.element
instance de l'ouverture de la boîte de dialogue format HTML (cependant je doute qu'il est même nécessaire dans le contrôleur). Mais vous devriez le savoir de toute façon.Démo: http://plnkr.co/edit/3YpQ2bemk8fntKAPWY9i?p=preview
besoin d'aide!!! Comme vous l'avez dit, il envoie la variable pour le contrôleur et le contrôleur je l'affecter à $champ d'application.variable. Mais le contrôleur a cessé d'être responsable pour le modèle 🙁 $champ d'application.la variable ne peut pas être vu dans le modèle(comme: {{nom}})
Vérifier la mise à jour de la démo, vous avez aussi besoin de transmettre
scope: $scope
pour cette approche. Si vous ne spécifiez passcope
optionngDialog
crée enfant du champ d'application de la$rootScope
et compiler modèle dans cette portée. Toutefois, danssomeCtrl
vous traitez avec enfant du champ d'application de la$scope
passée dans pendant$controller
de l'instanciation.votre démonstration est parfaitement travailler comme je veux. Mais c'est la même chose ne fonctionne pas pour moi. Peut-être à cause de l'angle ou ngDialog versions
Assurez-vous d'ouvrir le dialogue avec
scope: $scope,
options et utiliser le même$scope
pour$controller('someCtrl', {$scope: $scope})
.OriginalL'auteur dfsq