cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - $watch监视下拉框,网页刷新时会自动执行一次,如何禁止自动执行?

详细描述:
$watch监视一个下拉框,期望情况是只有当用户点击下拉框中的选项时,前端才请求后端更新数据。

目前的问题是:
当网页加载时,下拉框第一次出现,$watch会自动执行一次,ng的机制认为加载就是一次用户的点击。

希望了解如何禁止这种情况的$watch自动执行

漂亮男人漂亮男人2744 hari yang lalu900

membalas semua(3)saya akan balas

  • 迷茫

    迷茫2017-05-15 17:06:22

    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;
        }
        
        //你的正常代码,写这里
    });

    balas
    0
  • PHPz

    PHPz2017-05-15 17:06:22

    http://docs.ngnice.com/api/ng/type/$rootScope.Scope
    

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

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-15 17:06:22

    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

    balas
    0
  • Batalbalas