Ember.js: تعذر تعيين مسار "الخطأ" على 2.10

تم إنشاؤها على ٢٩ نوفمبر ٢٠١٦  ·  29تعليقات  ·  مصدر: emberjs/ember.js

يقوم Ember.js بتعيين مسار "الخطأ" افتراضيًا ، لكن أداة التعرف على المسار لا تسمح بالمسارات المكررة بعد الآن:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531

سيؤدي القيام بذلك إلى منحك صفحة فارغة بها خطأ في وحدة التحكم الخاصة بك:

Uncaught Error: You may not add a duplicate route named `error`

تم تعيين مسارات "الخطأ" الافتراضية هنا:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50

يمكنك اختباره بمحاولة التعامل مع المسار error باستخدام ember g route error .
عملت هذه الوظيفة بشكل جيد في 2.9.

Bug Ember 2.10 Has Reproduction

التعليق الأكثر فائدة

ثابت في 2.11.1

ال 29 كومينتر

@ diamondo25 هل يمكنك التكاثر في Twiddle من فضلك؟

أرى هذا أيضًا ولا أتذكر رؤيته في أحدث إصدار تجريبي من الأمس

يبدو حققي. هذا بفضل تغيير route-recognizer الذي قمت به. تحتاج إلى قفل الإنشاء الافتراضي إذا كان المستخدم قد أنشأ بالفعل واحدًا. (أعرف كيفية الإصلاح ، وسأصل إليه.)

nathanhammond شكرا rwjblue التي صنفتها على أنها "Bug" ربما يمكن حل هذه المشكلة بإصدار

هذا ليس الإصلاح ،pixelhandler! هذا هو المكان الذي تم تقديم الخطأ فيه. 😜 هذا يحتاج إلى إصدار نقطة بمجرد إصلاحه ، ولكن لدي بعض الأشياء الأخرى التي يجب معالجتها قبل أن أتمكن من العودة للقيام بأشياء جهاز التوجيه. (لدي حوالي 5 قضايا مفتوحة يجب معالجتها).

هل هناك مكانة لهذا الرجل؟

لقد وصلنا إلى هذه المشكلة بترقية تطبيق Bustle إلى 2.10 ، وسنحتاج إما إلى إعادة تشكيل مسار الجذر error ليتم تسميته بشكل مختلف أو إيقاف الترقية إلى 2.10.

نحن مهتمون أيضًا بحالة هذا الخطأ. نحن نتوقف عن الترقية إلى 2.10 في الوقت الحالي.

كنت آمل أن أتمكن من التغلب على هذا من خلال عدم تسجيل المسار error صراحة وترك قالب الخطأ والمسار وما إلى ذلك في مكانه. لقد جربته ووجدت:

  • في خطاف الطريق الفاشل ، سينتقل جهاز التوجيه إلى مسار الخطأ ويظهر القالب المخصص الخاص بي.
  • عند الانتقال المتعمد إلى الخطأ ، لا ينتقل جهاز التوجيه إلى القالب الخاص بي. ومن المثير للاهتمام ، أنه لا يسجل نفس رسالة الخطأ التي تظهر عند عدم وجود طريق.

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

nathanhammond - هل لديك أية أفكار حول ما سبق؟ هل يستحق القرصنة أو الأفضل انتظار الإصلاح الرسمي؟

لا يهم :(

سيظل الاقتراح أعلاه يتطلب تعيين error وسيؤدي إلى حدوث هذا الخطأ.

قد أذهب فقط لإنشاء المسار المخصص للأخطاء التي تم معالجتها واستخدام نفس مكون الخطأ الخاص بي في القالب error .

يبدو أنه الأسلوب الآخر الوحيد في انتظار الإصلاح.

CC: nathanhammond

لقد لاحظت أن هذا تم إصلاحه في ember v2.12.0-beta.1 ، فهل هناك أي فرصة للحصول على هذا الإصلاح بنقل خلفي إلى إصدار 2.11؟ نظرًا لأن الإصدار التجريبي 2.12 يقدم مجموعة كاملة من الإصدارات الجديدة.

نظرًا لأن الإصدار التجريبي 2.12 يقدم مجموعة كاملة من الإصدارات الجديدة.

الرجاء الإبلاغ عن أي مشكلات تجدها في الدورة التجريبية!

هل هناك أي فرصة للحصول على هذا الإصلاح backported إلى إصدار 2.11؟

نعم ، أعتقد أن هذه فكرة جيدة.

يبدو أن هذا قد علق في v0.2.9 + مع 27c0f57 و 9b21d93 لسلسلة 0.3.x.

rwjblue هل سيتم

ثابت في 2.11.1

هل تم إصلاح ذلك بطريقة مختلفة عن الإصدار التجريبي 1؟ لقد جربت للتو 2.11.1 ولا يزال هذا يعطيني خطأ مسار مكررًا حول "hotel.error" بينما الإصدار التجريبي لا يفعل ذلك.

Glennvd - نعم ، هما إصدارات مختلفة من

rwjblue لديّ قطعة صغيرة هنا ، فقط أريد تغييرها إلى إصدار ember الصحيح https://ember-twiddle.com/e4b8412bf5629483f94276a001598571

Stacktrace الكامل (من تطبيقي الخاص) أدناه.
add (ember.debug.js:55618) (anonymous) (ember.debug.js:57247) (anonymous) (ember.debug.js:55191) eachRoute (ember.debug.js:55179) eachRoute (ember.debug.js:55177) eachRoute (ember.debug.js:55177) map (ember.debug.js:55190) map (ember.debug.js:57244) _initRouterJs (ember.debug.js:27511) setupRouter (ember.debug.js:27606) startRouting (ember.debug.js:27592) startRouting (ember.debug.js:2887) didBecomeReady (ember.debug.js:3867) invoke (ember.debug.js:337) flush (ember.debug.js:405) flush (ember.debug.js:529) end (ember.debug.js:599) run (ember.debug.js:722) join (ember.debug.js:744) run.join (ember.debug.js:22286) (anonymous) (ember.debug.js:22349) mightThrow (jquery.js:3570) process (jquery.js:3638) nrWrapper ((index):97)
لا يزال الخطأ هو نفسه Uncaught Error: You may not add a duplicate route named hotel.error .

تضمين التغريدة

grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source

عائدات

node_modules/ember-source/dist/ember.debug.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.prod.js:RouteRecognizer.VERSION = '0.2.8';

نعم ، المشكلة هي أن [email protected] تم إصداره بإخراج توزيع 0.2.8. أنا أعمل على ذلك...

rwjblue ، أقدر كثيرا سيدي.
اخبرني اذا احتجت شيئا!

حسنًا ، لقد قمت بإصدار [email protected] بإخراج التوزيع المحدث ، ثم اصطدمت في فرع الإصدار (في https://github.com/emberjs/ember.js/commit/6c7e6950f127aa31912b5729971703c0c9615655) ، وأكدت في إخراج البناء (في https://github.com/components/ember/commit/4a9c7361f4f546daf3ad342da6d196b5b4b6bf20).

وبعد ذلك أكد مع وعبث تتقاسمهاGlennvd فوق ذلك عند استخدام release فرع لا التأكيد يحدث (والأحذية التطبيق).

إذا تمكن شخص آخر من التحقق مني هنا ، فيمكنني إصدار 2.11.2 ...

عليه.

rwjblue اغفر لي نوبي ،
أحاول بناء مشروعي باستخدام

devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...

لكنه فشل

$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'

ما الخطأ الذي افعله :)؟

gmaliar ember-source لا يحتوي على عناصر البناء في المستودع ، لذلك تحتاج إلى استخدام علامة bower أو استنساخ وبناء وربط العضو محليًا.

شكرا locks ،
rwjblue يمكنني أن أؤكد أنه يعمل.

يمكن إغلاق هذا ، فهو يعمل بشكل صحيح على 2.11.2 .

شكرا للتأكيد!

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