Ember.js: باستخدام هذا الانتقال لتخطي تحميل النموذج

تم إنشاؤها على ٢٢ ديسمبر ٢٠١٣  ·  3تعليقات  ·  مصدر: emberjs/ember.js

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

إذا قمت بتحديث الصفحة بعنوان URL الصحيح على الرغم من تحميل النموذج على ما يرام. لقد قمت بتجميع رمز الشفرة للتوضيح.

http://codepen.io/anon/pen/LsfhB

الإصدار الحالي سيتم تسجيل الخروج إلى وحدة التحكم "أنا هنا". إذا ألقيت نظرة على IndexRoute ، فهناك انتقال تم التعليق عليه. إذا تم تمكين ذلك ، فلن يتم تشغيل "أنا هنا" مطلقًا.

هل هذا متوقع؟ إذا كان الأمر كذلك ، فأين يجب أن أقوم بتحميل النموذج الخاص بي لمسار التأكيد؟

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

إذا قمت بتغيير الانتقال ليكون this.transitionTo('confirm', 1); ، فسيعمل كما هو متوقع.

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

من المحتمل أن تقوم مستندات API بمثال على تمرير المعرفات بدلاً من النماذج الكاملة: http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo

اتمنى ان يكون هذا منطقي

ال 3 كومينتر

إذا قمت بتغيير الانتقال ليكون this.transitionTo('confirm', 1); ، فسيعمل كما هو متوقع.

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

من المحتمل أن تقوم مستندات API بمثال على تمرير المعرفات بدلاً من النماذج الكاملة: http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo

اتمنى ان يكون هذا منطقي

من المنطقي الآن. كان سؤالي المبدئي بعد تعليقك هو كيف يمكنك تمرير معايير متعددة؟ لكن يبدو أنك قمت فقط بتمريرها كحجج منفصلة.

this.transitionTo('confirm.url', 1, 'the-slug-I-want');

هذا يعمل جيدا بالنسبة لي.

اسأل هنا ، إذا كان لديك مسار به طرق فرعية جميعها تحتوي على مقطع ديناميكي:
على سبيل المثال
this.route ('organization'، {path: 'members /: organization_id'}، function () {
this.route ('project'، {path: 'projects /: project_id'}، function () {
this.route ('screen'، {path: 'screens /: screen_id'}) ؛
}) ؛
وأنا في طريق آخر ، مثل مسار المصادقة. عندما أذهب إلى هذا. TransitionTo ('organization.project.screen' ،
{Organization_id: 'grege23-234-4c3e-96fe-234423'}،
{project_id: '234234-23423-4b99-a492-234'}،
{screen_id: '34534-48f4-471d-ad17-3'45}) ؛
لا أرى شيئًا ، لأن النموذج لم يتم تحميله.
كيف يمكنك الذهاب لهذا؟

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