Dalam AngularJS, anda boleh menghadapi isu gelung tak terhingga apabila cuba menambah arahan tambahan pada elemen dari dalam arahan. Ini berlaku disebabkan oleh proses penyusunan semula automatik AngularJS selepas perubahan arahan.
Untuk menangani isu ini, anda boleh memanfaatkan perkhidmatan $compile bersama-sama dengan manipulasi elemen untuk menambah arahan yang dikehendaki tanpa mencetuskan gelung tak terhingga. Berikut ialah versi ubah suai kod anda yang menyelesaikan masalah:
angular.module('app') .directive('superDirective', function ($compile, $injector) { return { restrict: 'A', replace: true, link: function compile(scope, element, attrs) { if (!element.attr('datepicker')) { // Check for existing attributes element.attr('datepicker', 'someValue'); element.attr('datepicker-language', 'en'); element.removeAttr("ng-required"); // Remove any ng-required attribute $compile(element)(scope); // Compile the updated element } } }; });
Pendekatan ini mengelakkan gelung tak terhingga dengan menyemak arahan sedia ada sebelum menambahkannya. Selain itu, ia mengalih keluar sebarang atribut ng-diperlukan sedia ada untuk menghalang berbilang contoh arahan daripada menetapkannya. Dengan menggunakan strategi ini, anda boleh menambah arahan kepada elemen dari dalam arahan induk dengan selamat.
Jika anda menemui berbilang kompilasi arahan anda pada satu elemen (seperti dalam elemen
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Gelung Infinite Apabila Menambah Arahan dalam AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!