Rumah  >  Artikel  >  hujung hadapan web  >  Apakah Perbezaan Antara Kaedah $observe dan $watch dalam AngularJS?

Apakah Perbezaan Antara Kaedah $observe dan $watch dalam AngularJS?

Patricia Arquette
Patricia Arquetteasal
2024-10-19 16:38:30546semak imbas

What's the Difference Between the $observe and $watch Methods in AngularJS?

Perbezaan antara Kaedah $observe dan $watch dalam AngularJS

AngularJS menggunakan kedua-dua Pemerhati dan Pemerhati untuk memantau perubahan dalam objek $scope. Walaupun kedua-duanya bertindak balas terhadap perubahan dalam $scope, terdapat perbezaan utama antara keduanya.

$observe:

  • Kaedah yang tersedia pada objek Atribut
  • Semata-mata melihat perubahan nilai atribut DOM
  • Terutama digunakan dalam arahan
  • Sesuai untuk memerhati atribut yang mengandungi interpolasi ({{}})

$watch:

  • Kaedah pada objek Skop
  • Memantau "ungkapan", sama ada fungsi atau rentetan
  • String dinilai sebagai Sudut ungkapan, tidak termasuk {{}}
  • Boleh digunakan dalam pengawal dan fungsi memaut
  • Selalunya digunakan untuk memerhati sifat model/skop

Sifat Asynchronous of Atribut dengan Interpolasi:

Atribut yang termasuk interpolasi tidak dinilai serta-merta. Oleh itu, $observe dan $watch adalah penting untuk mengendalikannya secara tidak segerak.

Syor:

Jika skop terpencil tidak digunakan, $watch disyorkan. Untuk skop terpencil dengan atribut yang mengandungi interpolasi, $observe harus diutamakan untuk ketekalan.

Contoh Kes Penggunaan:

  • $observe: Perhatikan nilai attr1= "Nama: {{name}}" dalam arahan.
  • $watch: Pantau sifat myModel.some_prop dalam pengawal.

Nota Tambahan:

  • Kedua-dua $observe dan $watch dilaksanakan semasa setiap kitaran ringkasan.
  • Arahan dengan skop terpencil membenarkan $observe atau $watch untuk atribut interpolasi dalam kes sintaks @.
  • Penilaian langsung ($eval()) boleh digunakan untuk atribut yang mengandungi nombor, boolean atau rentetan malar.

Atas ialah kandungan terperinci Apakah Perbezaan Antara Kaedah $observe dan $watch dalam AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn