Rumah  >  Artikel  >  hujung hadapan web  >  Cara Mengantara AngularJS dengan Kod Warisan

Cara Mengantara AngularJS dengan Kod Warisan

Patricia Arquette
Patricia Arquetteasal
2024-10-19 11:10:02350semak imbas

How to Interoperate AngularJS with Legacy Code

Mengantaramukakan AngularJS dengan Kod Warisan

Mengintegrasikan AngularJS dengan aplikasi lama boleh memberikan cabaran disebabkan panggilan balik luaran yang perlu berinteraksi dengan rangka kerja Angular . Untuk menangani perkara ini, AngularJS menyediakan beberapa mekanisme untuk saling kendali.

Mengakses Perkhidmatan Sudut daripada Kod Luaran

Satu pendekatan adalah untuk mencipta perkhidmatan AngularJS dan mendedahkan kaedah penetap untuk mengemas kininya data. Kod warisan kemudiannya boleh memanggil kaedah ini melalui objek ExternalInterface AngularJS. Dalam perkhidmatan, fungsi setter harus mencetuskan acara menggunakan bas acara Sudut.

Merakam Acara daripada Perkhidmatan dalam Pengawal

Pengawal boleh melanggan acara yang dipancarkan oleh perkhidmatan. Untuk melakukan ini, mula-mula tentukan nama acara dalam perkhidmatan. Dalam pengawal, gunakan kaedah $scope.$on() untuk mendaftarkan pendengar acara yang akan menangkap acara dengan nama yang berkaitan dan melaksanakan sebarang kemas kini UI yang diperlukan.

Penghadan

Perlu ambil perhatian bahawa kemas kini terus kepada data perkhidmatan dari luar AngularJS mungkin tidak sentiasa mencetuskan kemas kini dalam paparan. Ini kerana AngularJS menggunakan mekanisme pengikatan data sehala. Untuk memastikan kemas kini ditunjukkan dalam paparan, sebarang perubahan data atau permohonan kaedah pada skop hendaklah dibalut dalam fungsi $apply() AngularJS.

Contoh

Yang berikut coretan kod menunjukkan cara menyediakan perkhidmatan dalam AngularJS dan mengaksesnya daripada aplikasi AS3 warisan:

<code class="javascript">angular.module('myApp').service('myService', function () {
  this.data = [];

  this.setData = function (data) {
    this.data.push(data);
    this.$emit('dataUpdated', data);
  };
});</code>
<code class="as3">// in legacy AS3 code
ExternalInterface.call("myService.setData", data);</code>

Dalam pengawal AngularJS:

<code class="javascript">$scope.$on('dataUpdated', function (event, data) {
  // update the UI with the received data
});</code>

Atas ialah kandungan terperinci Cara Mengantara AngularJS dengan Kod Warisan. 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