angular.js - Bagaimanakah ng secara automatik menghantar permintaan ke latar belakang untuk mengemas kini halaman berdasarkan nilai pengikatan dua hala?
ringa_lee
ringa_lee 2017-05-15 17:06:13
0
3
591

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_lee
ringa_lee

ringa_lee

membalas semua(3)
曾经蜡笔没有小新

$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).

大家讲道理

kotak lungsur turun biasanya diproses menggunakan perintah ngChange ngChange

给我你的怀抱

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan