أنا أرسل ...
السلوك الحالي:
اهلا ياجماعة.
بعد مناقشة في العلاقات العامة التي قمت بإنشائها لإصلاح خطأ في خدمة الموقع $ لعنوان url الذي يحتوي على المحتملة في عنوان url ليست هي المشكلة الرئيسية بدلاً من ذلك ، تكمن المشكلة في استخدام عناوين url غير المشفرة وغير المشفرة.
انظر العلاقات العامة لمزيد من التفاصيل. https://github.com/angular/angular.js/pull/16098
السلوك المتوقع / الجديد:
يجب أن يعمل عنوان url غير المشفر والمفكك باستخدام خدمة الموقع $
الإصدار الزاوي: 1.x.
المتصفح: الكل
أي شيء آخر:
كيف تصلحها
في src / ng / browser.js توجد وظيفة fireStateOrUrlChange لها هذا التحقق من الصحة
إذا (lastBrowserUrl === self.url () && prevLastHistoryState === cachedState) {{
إرجاع؛
}
يبدو أن المشكلة الرئيسية هي أننا نقارن self.url () مع lastBrowserUrl ، ولكن يمكن تعيين lastBrowserUrl من مصادر مختلفة ، وليس دائمًا بنفس التشفير / فك التشفير
gkalpak تقصد (من تعليقك ) القيام بشيء مثل url = urlResolve(url).href
ضمن $browser.url
أو تغيير جميع المكالمات إلى $browser.url(val)
لتكون متسقة؟ يبدو أن إضافة urlResolve
تعمل ، على الرغم من إجراء تغييرات قليلة (بعض عناوين URL تنتهي الآن بـ /
).
jbedard ، لم أفكر في تفاصيل التنفيذ. كنت أشير إلى النتيجة النهائية: ابتسامة:
dmartres هل يمكنك تأكيد ما إذا كان هذا لا يزال يمثل مشكلة في 1.7.3؟ أعتقد أن aee7d53a6b5d3d7bc0a1124fd3df9b263777e72e (إصلاح # 16592) ربما يكون قد أصلح هذا؟
لقد أصلحنا هذا جزئيًا باستخدام المتصفح <a href>
لتطبيع عناوين URL في بعض المجالات الرئيسية (https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0 ، https://github.com/ الزاوي / angular.js / الالتزام / 2f72a69ded53a122afad3ec28d91f9bd2f41eb4f). ومع ذلك ، لا يوجد متصفح يعمل على تطبيع كل شيء بهذه الطريقة. لإصلاح هذا حقًا ، سنحتاج إلى تنفيذ التطبيع بأنفسنا.
لقد قمت بتطبيق POC للقيام بذلك التطبيع يدويًا ، لكننا قررنا أن هذا تغيير كبير جدًا في هذه المرحلة. لمعلوماتك 15 من الإضافات التي تم اختبارها في ذلك الالتزام تفشل حاليًا في الكروم.
لهذه الأسباب سنضع هذا في حالة "لن يتم الإصلاح".
التعليق الأكثر فائدة
لقد أصلحنا هذا جزئيًا باستخدام المتصفح
<a href>
لتطبيع عناوين URL في بعض المجالات الرئيسية (https://github.com/angular/angular.js/commit/e68697e2e30695f509e6c2c1e43c2c02b7af41f0 ، https://github.com/ الزاوي / angular.js / الالتزام / 2f72a69ded53a122afad3ec28d91f9bd2f41eb4f). ومع ذلك ، لا يوجد متصفح يعمل على تطبيع كل شيء بهذه الطريقة. لإصلاح هذا حقًا ، سنحتاج إلى تنفيذ التطبيع بأنفسنا.لقد قمت بتطبيق POC للقيام بذلك التطبيع يدويًا ، لكننا قررنا أن هذا تغيير كبير جدًا في هذه المرحلة. لمعلوماتك 15 من الإضافات التي تم اختبارها في ذلك الالتزام تفشل حاليًا في الكروم.
لهذه الأسباب سنضع هذا في حالة "لن يتم الإصلاح".