Maison > Questions et réponses > le corps du texte
Je travaille sur un système de questions-réponses, qui comporte une page de questions qui répertorie les informations sur la question, puis répertorie les réponses sous la question. J'ai utilisé le contrôleur QuestionCtrl pour cette page de questions unique, puis j'ai utilisé http.get pour obtenir les réponses et j'ai utilisé ng-repeat pour répertorier chaque réponse. Ensuite, j'utilise le même contrôleur AnswerCtrl pour contrôler chaque réponse. Lorsque j'obtiens la réponse pour la première fois, j'obtiens le réponse.prised_counter à afficher, c'est-à-dire que la réponse est actuellement appréciée. Ensuite, j'ajoute ng-click à la balise a de l'élément similaire pour effectuer l'opération similaire. À ce stade, la fonction dans AnswerCtrl est appelée. Après les likes, je souhaite ajouter Answer.prised_counter 1, mais parce que la réponse provient de QuestionCtrl. Il est lu à partir des réponses dans , je ne peux donc pas modifier la variableanswer.prised_counter dans AnserCtrl. S'il vous plaît, dites-moi comment dois-je parvenir à cette situation ? Le plan est-il faux ?
習慣沉默2017-05-15 17:01:16
Dans ce cas, un QuestionCtrl suffit. Il n'est pas nécessaire de créer un autre AnswerCtrl, ce qui complique le problème
Si vous devez répondreCtrl, vous pouvez utiliser $emit et $brodcast pour établir une communication de portée parent-enfant<. 🎜>Exemple
<ul ng-controller='questionCtrl'>
<li ng-repeat="item in list" ng-click='like(item)'></li>
</ul>
app.controller('questionCtrl',function(){
$scope.list=[
{count:10,content:"这里是答案1"},
{count:12,content:"这里是答案2"}
]
$scope.like=function(item){
//answer function
}
})