Appel d'une Directive méthode du Contrôleur de Contrôleur de Parent dans AngularJS
Je suis en utilisant AngularJS et j'ai une directive qui dispose de son propre Contrôleur. Il hérite de la portée du Contrôleur de Parent.
Comme un exemple, considérez les points suivants:
function ParentCtrl() {
$scope.aMethod = function() {
//DO SOMETHING
};
}
function ChildCtrl() {
$scope.bMethod = function() {
//DO SOMETHING ELSE
}
}
Maintenant, $scope.aMethod
de ParentCtrl() est déclenchée par une ng-cliquez sur la directive. Ce que je veux faire est d'appeler $scope.bMethod
de ChildCtrl(). Comment puis-je le faire?
EDIT: Quelques informations supplémentaires. Le modèle associé à la ParentCtrl dispose d'un bouton et de plusieurs directives. Chaque directive charge un formulaire avec différents ensembles d'entrées. Lorsque le bouton dans le ParentCtrl Modèle est cliqué, les directives sont chargés l'un après l'autre, par le biais de ng-switch on
et ng-switch-when
.
Lorsque l'utilisateur clique sur le bouton, le ChildCtrl qui appartient à la directives est destiné à stocker les données dans leurs formes respectives.
Ainsi, lorsque le bouton est cliqué:
1. Le ChildCtrl enregistre le modèle associé avec la directive actuelle qui a été chargé.
2. Le ParentCtrl des charges de la prochaine directive de la série.
ng-click
est lié à la touche qui est associée à ParentCtrl. Mais ChildCtrl doit également faire une certaine action (enregistrer les données du formulaire) lorsque ce bouton est cliqué. Comment fait-on le réaliser?
$watch
sur un parent champ d'application de la propriété pourriez faire la même chose. Pouvez-vous fournir un skosh plus de détails sur vos cas d'utilisation?Assurez-vous. Édité ma question afin de refléter la même...
Pouvez-vous poster un super-simple plunker qui identifie le problème de fond de l'espace?
OriginalL'auteur callmekatootie | 2013-03-01
Vous devez vous connecter pour publier un commentaire.
Ceci est similaire à ce rajkamal est en train de dire, en ce que vous aurez besoin d'utiliser la diffusion... cependant, vous aurez envie de changer dynamiquement la diffusion de cible selon l'enfant, vous devez.
Voici une plunker montrer un exemple
Et voici le code:
et ici, il est en HTML:
Ce que j'ai fait ici est de créer un mécanisme par lequel mes directives, et ensuite diffusé à eux par leur nom. Si le code n'est pas explicite, et laissez-moi savoir. J'espère que cette aide.
OriginalL'auteur Ben Lesh