Angular.js: يجب أن يوفر Angular طريقة للتمرير إلى عنصر معين في الصفحة

تم إنشاؤها على ١ نوفمبر ٢٠١٠  ·  10تعليقات  ·  مصدر: angular/angular.js

تُستخدم معرّفات التجزئة (التجزئة) عادةً للارتباط بأماكن محددة في صفحة طويلة. لا يعمل هذا مع الزاوية حيث يتم استخدام التجزئة لتنفيذ المسار. يجب توفير طريقة للتمرير لأسفل الصفحة إلى عنصر معين.

feature

ال 10 كومينتر

نعم ، وبعد ذلك ، يجب أن نستخدمه مع الموقع $ - كما هو الحال الآن ، نحن ندعم التجزئة أيضًا ، لذلك عندما يتغير $ location.hash () ، يجب أن ننتقل إليه ...

تم تنفيذ هذا بالفعل. إذا كان $ location يعمل في وضع html5 ، فقم فقط بإنشاء روابط href="#anchor"

آسف لمفاجأة هذا ، ولكن ماذا لو لم نكن في وضع html5؟ انظر هذا الملفين للمراجع:
http://jsfiddle.net/gabrielstuff/SdGnR/ التي تستخدم جهاز التوجيه وتقطع رابط الارتساء.
و هذه
http://jsfiddle.net/gabrielstuff/nYxFg/ الذي لا يستخدم أي جهاز توجيه ويسمح بالقفز على نفس الصفحة بشكل صحيح.

كما أن محاولة استخدام HTML5 لم تساعد كثيرًا (ولكن هذه تذكرة أخرى)

لدي نفس المشكلة. أنا لست في وضع HTML5. كيف سيعمل هذا في وضع التجزئة؟

أوافق على أن هذا السلوك غير متوقع للغاية. حتى إذا كان شخص ما لا يستخدم وضع HTML5 ، يجب ألا يكسر Angular هذا السلوك المتوقع عند استخدام تجزئة مع نقطة ارتساء.

كما أفهمها ، يجب على Angular ببساطة تجاهل أي روابط تحتوي على تجزئات صريحة فيها على أي حال. إذا لم نستخدم HTML5 ، فستتم إعادة كتابة الرابط <a href="/something"... تلقائيًا كـ /#/something (ما لم أستهدف _self ). لذا يمكن القول إن <a href="#something" يذهب دائمًا إلى /#something

+1

أعتقد أنه يجب عليك استخدام anchorScroll للقيام بذلك.

مجرد فضول IgorMinar هل يمكننا الحصول على تعليق حول ما إذا كان سيتم إصلاح هذه المشكلة أم لا؟ يمكن للمرء أن يجادل بأنه لا يلزم أن يكون على أساس المتصفحات القديمة التي لا يتم دعمها بالكامل ولكني أعتقد أن إجابة واضحة حول ما إذا كان يجب أن تعمل الروابط الثابتة مع المتصفحات التي لا تدعم واجهة برمجة تطبيقات السجل أم لا.

على الرغم من ذلك ، تظهر لي المشكلة ، إذا كنت في # / route1 ، فمن الصعب أن أكون في # / route1 # anchor. الاختراق المذكور هنا (http://www.benlesh.com/2013/02/angular-js-scrolling-to-element-by-id.html) يبدو جيدًا ، ولكنه سيكون مثاليًا إذا "نجح الأمر". على أي حال ، إذا كان الاختراق $anchorScroll هو الحل ، فقد يكون من الجيد أن نقول ذلك وربما يمكن لشخص ما تحديث الوثائق لتعكس كيفية حل هذه المشكلة للمتصفحات القديمة.

هنا (http://stackoverflow.com/a/15935517/2071612) هو حل رائع.

راجع للشغل ، لقد قدمت PR (# 9596) لإضافة دعم للتمرير بشكل مستقل عن $location.hash() .

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات