angular.js - $watch memantau kotak drop-down Ia akan dilaksanakan secara automatik sekali apabila halaman web dimuat semula Bagaimana untuk melumpuhkan pelaksanaan automatik.
漂亮男人
漂亮男人 2017-05-15 17:04:22
0
3
938

Penerangan terperinci:
$watch memantau kotak lungsur turun, dan jangkaan ialah hanya apabila pengguna mengklik pilihan dalam kotak lungsur, bahagian hadapan akan meminta bahagian belakang untuk mengemas kini data.

Masalah semasa ialah:
Apabila halaman web dimuatkan dan kotak drop-down muncul buat kali pertama, $watch akan dilaksanakan secara automatik sekali Mekanisme ng percaya bahawa pemuatan adalah klik pengguna.

Ingin tahu cara melumpuhkan pelaksanaan automatik $watch dalam kes ini

漂亮男人
漂亮男人

membalas semua(3)
迷茫

Terima kasih atas jemputan.

Pertama sekali, bolehkah saya membetulkan sedikit kecacatan dalam perkataan.

Anda berkata "$watch monitors a drop-down box", ng ialah rangka kerja yang melaksanakan pengikatan data dua hala dan mempunyai API pengisytiharan Adalah mustahil untuk $watch di sini memantau elemen DOM 下拉框 . Perkataan yang sesuai boleh ditulis sebagai "ungkapan yang dipantau oleh $watch yang menunjuk kepada nilai kotak lungsur yang dipilih" yang lebih tepat (rakan yang mahir dalam bahasa Cina boleh mengoptimumkan lagi).

Apabila bertanya, kita cenderung terlalu menumpukan pada jawapan yang ingin kita ketahui dan mengabaikan cara ekspresinya huraian adalah kabur, menjadikannya mustahil untuk dijawab. Sebenarnya, saya masih boleh memahami huraian soalan itu, tetapi saya hanya ingin mengatakan beberapa perkataan lagi kerana perasaan saya.

Berbalik kepada subjek, memandangkan anda tidak mahu berurusan dengan pemulaan data $watch, anda boleh menilainya seperti ini

$scope.$watch('表达式', function(newVal, oldVal){
    //当之前值和当前值相同,或者之前值为null或undefined时
    if(newVal === oldVal || oldVal == null){
        //不执行任何操作
        return;
    }
    
    //你的正常代码,写这里
});
PHPzhong
http://docs.ngnice.com/api/ng/type/$rootScope.Scope

scope.$watch('name', function(newValue, oldValue) {
  if(newValue == oldValue) return;
  scope.counter = scope.counter + 1;
});
習慣沉默

Menggunakan ngChange boleh mengelakkan panggilan pemula

Nota:

  • Perlu digunakan bersama dengan ngModel

  • Menukar nilai ngModel menggunakan program tidak akan mencetuskan ngChange

Nilai ungkapan yang diberikan apabila pengguna menukar input Ungkapan tersebut dinilai serta-merta, tidak seperti peristiwa onchange JavaScript yang hanya mencetuskan pada penghujung perubahan (biasanya, apabila pengguna meninggalkan elemen borang atau menekan butang. kunci pulangkan).

ngTukar Dokumentasi

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