Comment accéder Enfant Contrôleur Champ d'application dans le Contrôleur de Parent Angulaire?
Je suis en train d'apprendre Angular JS et j'ai quelque chose comme ça avec un contrôleur de parent et de l'enfant contrôleur:
<div ng-controller="MainCtrl">
<p>Good {{question}}</p>
<div ng-controller="ChildCtrl">
<p>Good {{answer}}!</p>
</div>
Bind the Child Controller's scope and show here: {{ answer}}
<div>
Ici, l'enfant est un contrôleur à l'aide de la portée comme ceci:
$scope.answer = response.answer;
Comment puis-je montrer le {{ answer }}
à l'extérieur du contrôleur enfant et à l'intérieur du contrôleur de parent?
OriginalL'auteur Neel | 2014-03-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également utiliser le champ d'application prototypes héritage.
Dans AngularJS, un enfant normalement fait hérite de son parent. Mais le
answer
est une primitive (pas de type d'objet). Nous devons donc mettre nos données de texte pour objet de s'assurer que les prototypes de l'héritage est en jeu.(Plus d'infos ici: https://github.com/angular/angular.js/wiki/Understanding-Scopes)
Contrôleurs:
Vue:
$emit
et$on
. Tas merci @IvanZhAwsm.. Sa a sauvé un jour de plus 🙂 merci.
OriginalL'auteur IvanZh
Utiliser le modèle de publication/abonnement:
Démo ici.
{{ answer}}
dans le contrôleur de parent doit montrerdemo
si son lié avec l'un{{ answer }}
dans le contrôleur enfant?En fait, il s'agit d'une erreur. Il doit être fixé maintenant.
Je vous remercie beaucoup. Qui fonctionne maintenant. Parfait!
Juste une petite question. le
evnt
dans$scope.$on('response', function (evnt, data)
doit êtreevent
ou ce n'est pas grave et il peut contenir n'importe quelle chaîne de caractères. (désolé si cela a l'air bête)il n'a pas d'importance et vous pouvez utiliser n'importe quelle chaîne, à un moment donné, nous utilisons des 'e'
OriginalL'auteur Minko Gechev