วันนี้ฉันพบปัญหาที่แปลกมากในโครงการ ฉันใช้ oclazyload เพื่อขี้เกียจโหลดโมดูลเชิงมุม หลังจากรีเฟรชหน้าฉันคลิกปุ่มทางเลือกและไม่สามารถกลับไปที่หน้าก่อนหน้าได้ มีการประเมินว่ากลไกการโหลดขี้เกียจถูกใช้เพื่อทำลายความสัมพันธ์ของรัฐภายในเชิงมุมทำให้ไม่สามารถกลับไปยังสถานะก่อนหน้า (เหตุการณ์ $ statechangestart ของ UI-routre ในปุ่มทางเลือกจะไม่ถูกเรียกใช้) แน่นอนว่านี่เป็นเพียงการคาดเดาและซอร์สโค้ดยังไม่ได้รับการสำรวจในเชิงลึกเนื่องจากความสัมพันธ์ของเหตุการณ์
วิธีแก้ปัญหาที่ไม่สามารถย้อนกลับได้หลังจากรีเฟรชกลไกการโหลดแบบขี้เกียจเชิงมุม:
เมื่อดูที่ซอร์สโค้ดของ Angular (Ionic) พบว่ามีวิธีการ onurlchange ในบริการ $ browser เมื่อเราเปลี่ยนที่อยู่ URL จากภายนอกเชิงมุมฟังก์ชั่นการจัดการเหตุการณ์ที่ลงทะเบียนในวิธีนี้จะถูกเรียกดังแสดงในรูปด้านล่าง:
ด้วยวิธีนี้คุณสามารถลงทะเบียนฟังก์ชั่นในทางเข้าโปรแกรม
// เมื่อสถานะถูกโหลดซ้ำผ่านปุ่มทางเลือก/ไปข้างหน้าของเบราว์เซอร์หน้าจะถูกโหลดใหม่ หากใช้สถานะระบบวิธีนี้จะไม่ถูกป้อน $ browser.onurlchange (ฟังก์ชั่น (url) {// todo วิเคราะห์สถานะใน URL ใช้การโหลดขี้เกียจเพื่อโหลดโมดูลสถานะเพื่อให้ได้การรีเฟรชหน้า});ผ่านฟังก์ชั่นนี้คุณสามารถรีเฟรชหน้าได้อีกครั้งเมื่อคุณถอยกลับและก้าวไปข้างหน้า ...
ด้านบนเป็นวิธีแก้ปัญหาที่รวดเร็วว่ากลไกการโหลดแบบขี้เกียจเชิงมุมไม่สามารถย้อนกลับได้หลังจากรีเฟรช ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!