angular.js - 請問angularjs裡關於controller之間通訊問題
仅有的幸福
仅有的幸福 2017-05-15 16:59:16
0
1
523

我在做一個問答系統,其中有一個問題單頁面,列出問題信息,然後列出問題下的回答列表。我給這個問題單頁用了 QuestionCtrl 控制器,然後用http.get獲取answers,用ng-repeat列出每個answer。然後每個answer我都用相同的控制器AnswerCtrl來控制, 其中每個answer都有個讚的功能,一開始獲取到answer時,我會把answer.prised_counter獲取到顯示,也就是回答當前被讚的數量。然後我給讚的元素a標籤上加上ng-click去執行讚的操作,這時候調用的是AnswerCtrl裡的function,讚了之後,我想要把answer.prised_counter+1,但是因為ansewr是從QuestionCtrl裡的answers裡讀出來的,所以在AnserCtrl裡我修改不了ansser.prised_counter這個變數。請問這個情況我該怎麼實現啊?是不是方案不對?

仅有的幸福
仅有的幸福

全部回覆(1)
習慣沉默

這種情況一個QuestionCtrl足以搞定,沒有必要再建立一個AnswerCtrl,反而把問題複雜化了
如果一定要answerCtrl的話,可以使用$emit,$brodcast來實現父子作用域的通訊
例子

<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
    }
})
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!