cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Bagaimanakah ng secara automatik menghantar permintaan ke latar belakang untuk mengemas kini halaman berdasarkan nilai pengikatan dua hala?

Penerangan adegan:
Terdapat kotak lungsur pilih bulan pada halaman Klik kotak lungsur dan kami boleh memilih bulan yang sepadan

<select  ng-model="month"></select>

Dalam pengawal, anda perlu pergi ke bahagian belakang untuk mendapatkan data yang sepadan mengikut bulan yang dipilih

$scope.$watch($scope.month, function(){
       $http({ url:url,method:'GET',withCredentials:true
            }).success(function(data,header,config,status){
                  // do something
            })
});

Pemikiran saya:
Dengan mengandaikan terdapat berbilang kotak lungsur pada halaman, menggunakan $watch untuk memantau perubahan $skop satu demi satu adalah tidak sesuai. Adakah terdapat sebarang idea bahawa daripada menggunakan $watch, apabila model ng berubah, pengawal secara automatik menghantar permintaan http untuk mendapatkan data?

Mencari bimbingan pakar~

ringa_leeringa_lee2774 hari yang lalu596

membalas semua(3)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:08:13

    $jam tangan anda ditulis dengan salah:

    你写成了:    $scope.$watch($scope.month, ...
    应该写成:    $scope.$watch('month', ...

    Kaedah berikut juga sangat mudah:

    <select ng-model="year"></select>
    <select ng-model="month"></select>
    <select ng-model="day"></select>
    $scope.changeDo = function(){
        $http({
            url:url,
            method:'GET',
            withCredentials:true
        }).success(function(data,header,config,status){
              // do something
        });
    };
    $scope.$watch('year', $scope.changeDo);
    $scope.$watch('month', $scope.changeDo);
    $scope.$watch('day', $scope.changeDo);

    Jika anda menggunakan ng-change, prestasi mungkin lebih baik. Ingat untuk mengalih keluar $watch() di atas:

    <select ng-model="year" ng-change="changeDo();"></select>
    <select ng-model="month" ng-change="changeDo();"></select>
    <select ng-model="day" ng-change="changeDo();"></select>

    Perbezaan prestasi pada asasnya boleh diabaikan. Saya telah melakukan ujian yang sama sebelum ini, dilaksanakan 1 juta kali, dalam masa 1 saat.
    Jika saya melakukannya, saya akan menggunakan kaedah $watch, yang sesuai untuk penyelenggaraan kemudian (kaedah ng-change memerlukan menukar pengawal dan templat, manakala kaedah jam tangan hanya perlu menukar pengawal).

    balas
    0
  • 大家讲道理

    大家讲道理2017-05-15 17:08:13

    kotak lungsur turun biasanya diproses menggunakan perintah ngChange ngChange

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:08:13

    ngChange ialah pilihan terbaik Pada dasarnya, tetapkan baris gilir mendengar sesedikit mungkin, jika tidak kecekapan akan menjadi sangat rendah.

    balas
    0
  • Batalbalas