واجهت اليوم مشكلة غريبة للغاية في المشروع. لقد استخدمت Oclazyload لتحميل الكسول الوحدة الزاوية. بعد تحديث الصفحة ، قمت بالنقر فوق زر التراجع ولم أتمكن من العودة إلى الصفحة السابقة. تشير التقديرات إلى أن آلية التحميل البطيئة تم استخدامها لتدمير ارتباط الدولة داخل Angular ، مما يؤدي إلى عدم القدرة على العودة إلى الحالة السابقة (لن يتم تشغيل $ statechangestart لـ UI-Routre في زر التراجع). بالطبع ، هذا مجرد تخمين ، ولم يتم استكشاف رمز المصدر بعمق بسبب علاقة الحدث.
الحلول التي لا يمكن أن تعطل بعد تحديث آلية التحميل الكسول الزاوي:
من خلال النظر إلى الكود المصدري لـ Angular (الأيوني) ، وجد أن هناك طريقة Onurlchange في خدمة متصفح $. عندما نغير عنوان عنوان URL من Outside Angular ، سيتم استدعاء وظيفة معالجة الأحداث المسجلة في هذه الطريقة ، كما هو موضح في الشكل أدناه:
وبهذه الطريقة ، يمكنك تسجيل وظيفة في مدخل البرنامج
// عندما يتم إعادة تحميل الحالة من خلال زر متصفح/إعادة التوجيه ، يتم إعادة تحميل الصفحة. إذا تم استخدام حالة النظام ، فلن يتم إدخال هذه الطريقة. $ browser.onurlchange (وظيفة (url) {// todo تقوم بتوزيع الحالة في عنوان URL ، يستخدم التحميل البطيء لتحميل وحدة الحالة لتحقيق تحديث الصفحة}) ؛من خلال هذه الوظيفة ، يمكنك تحديث الصفحة مرة أخرى عندما تتراجع وتتقدم إلى الأمام ...
ما سبق هو الحل السريع الذي لا يمكن ترحيل آلية التحميل الكسول الزاوي بعد الانتعاش. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!