اذهب إلى المحتوى

السؤال

نشر (معدل)

أستخدم Angular مع لارافيل ولكن ظهرت مشكلة في تحويل المسارات ضمن واجهات التطبيق، فعند تعريف مسار محدد بالشكل:

$routeProvider.when('/image/:imageId', {
    controller: 'imagePageController',
    templateUrl: 'views/image.html'
});

وباستخدام الوسم a:

<a href="/#/images/{{image.id}}">Show Image</a>

يتم تحويل العلامات " / " الموجودة في المسار إلى القيمة "%2F" فيصبح الرابط على الشكل التالي:

http://localhost:8000/#%2Fimage%2F1

ولا يتم الحصول على القيم أو الواجهات بالشكل الصحيح. حاولت استخدام ng-href بدلاً من الوسم a ولكن بقيت نفس المشكلة. كيف يمكنني حل هذه المشكلة؟

تم التعديل في بواسطة Amir Alsaeed

Recommended Posts

  • 0
نشر

يتم تحويل العلامة / إلى %2F ضمن الترميز المستخدم في المسارات والذي يدعى percent-encoding، والسبب في هذه المشكلة أنه عند التحديث إلى نسخة Angular 1.6 يجب تغيير المسارات الافتراضية الموجودة ضمن خدمة المسارات $location أي استخدام locationProvider لتصبح بالشكل التالي:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);

وأيضاً يوجد حل آخر من طرف العميل بإضافة العلامة ! قبل مسار التوجيه لتصبح بالشكل التالي:


بدلاً من
#/path/new

تصبح كالتالي:

#!/path/new

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...