Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengintegrasikan Kawalan AngularJS dengan Kod Warisan yang Memerlukan Panggilan Balik Tetingkap DOM?

Bagaimana untuk Mengintegrasikan Kawalan AngularJS dengan Kod Warisan yang Memerlukan Panggilan Balik Tetingkap DOM?

Barbara Streisand
Barbara Streisandasal
2024-10-19 10:34:29244semak imbas

How to Integrate AngularJS Controls with Legacy Code Requiring DOM Window Callbacks?

Panggil AngularJS daripada Kod Legacy

Masalah:
Anda perlu menyepadukan kawalan AngularJS dengan Flex warisan aplikasi yang memerlukan panggilan balik dilampirkan pada tetingkap DOM.

Penyelesaian:

Untuk menghantar acara yang pengawal AngularJS boleh dengar dari luar rangka kerja, ikut langkah ini:

  1. Dapatkan Skop dan Penyuntik:

    • Gunakan angular.element(domElement).scope() untuk mendapatkan skop semasa untuk HTML elemen yang digunakan untuk mengemas kini aplikasi AngularJS.
    • Gunakan angular.element(domElement).injector() untuk mengakses penyuntik apl semasa.
  2. Dapatkan Perkhidmatan AngularJS:

    • Dari penyuntik, dapatkan perkhidmatan AngularJS yang ingin anda kemas kini.
  3. Gunakan Fungsi AngularJS:

    • Dalam AngularJS, bungkus sebarang kemas kini pada model atau kaedah penyeruan pada skop dalam $apply(function(){ ... }) untuk memastikan perambatan perubahan yang betul .

Contoh Penggunaan:

// Get the AngularJS scope and service
var scope = angular.element(document.getElementsByTagName('body')[0]).scope();
var service = scope.injector().get('myService');

// Invoke an AngularJS method
scope.$apply(function () {
  service.update();
});

Nota Tambahan:

  • Perubahan pada model AngularJS atau seruan kaedah skop mesti dibalut dengan $apply().
  • Anda boleh menggunakan angular.element(domElement).controller() untuk mengakses pengawal AngularJS yang dikaitkan dengan elemen HTML.

Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan Kawalan AngularJS dengan Kod Warisan yang Memerlukan Panggilan Balik Tetingkap DOM?. 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