cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Sila beritahu saya tentang isu komunikasi antara pengawal dalam angularjs

Saya sedang mengusahakan sistem Soal Jawab, yang mempunyai halaman soalan yang menyenaraikan maklumat soalan dan kemudian menyenaraikan jawapan di bawah soalan. Saya menggunakan pengawal QuestionCtrl untuk halaman tunggal soalan ini, kemudian menggunakan http.get untuk mendapatkan jawapan, dan menggunakan ng-repeat untuk menyenaraikan setiap jawapan. Kemudian saya menggunakan pengawal AnswerCtrl yang sama untuk mengawal setiap jawapan Setiap jawapan mempunyai fungsi seperti Apabila saya mula-mula mendapat jawapan, saya akan mendapat jawapan.prised_counter untuk dipaparkan, iaitu, jawapannya sedang disukai. Kemudian saya menambah ng-klik pada tag elemen suka untuk melaksanakan operasi seperti Pada masa ini, fungsi dalam AnswerCtrl dipanggil Selepas suka, saya ingin menambah answer.prised_counter 1, tetapi kerana jawapan adalah daripada QuestionCtrl Ia dibaca daripada jawapan dalam , jadi saya tidak boleh mengubah suai answer.prised_counter pembolehubah dalam AnserCtrl. Tolong beritahu saya bagaimana saya harus mencapai keadaan ini? Adakah rancangan itu salah?

仅有的幸福仅有的幸福2822 hari yang lalu559

membalas semua(1)saya akan balas

  • 習慣沉默

    習慣沉默2017-05-15 17:01:16

    Dalam kes ini, satu QuestionCtrl sudah cukup. Tidak perlu mencipta AnswerCtrl yang lain, yang merumitkan masalah
    Jika anda mesti answerCtrl, anda boleh menggunakan $emit dan $brodcast untuk mencapai komunikasi skop ibu bapa<. 🎜> Contoh

    <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
        }
    })

    balas
    0
  • Batalbalas