الآن بعد أن كنت قد حصلت على قدميك الرطب مع الملاحظات الزاوي في التمرين السابق،
كنت تنظر إلى الوراء وتقول،
«أوه الملاحظات ليست سيئة بعد كل شيء،
فهي واضحة إلى حد ما للاستفادة من.»
لذلك، نحصل على أكثر طموحا قليلا.
دعونا نذهب خطوة أخرى إلى الأمام ومن ثم الاستفادة من المدمج في يمكن ملاحظتها داخل Angular.
المعلمات التي يمكن ملاحظتها والتي تأتي
من خدمة المسار تنشيط داخل وحدة جهاز التوجيه لدينا.
سنقوم الآن بتحديث مكون تفاصيل الطبق،
للاستفادة من المعلمات التي يمكن ملاحظتها من
خدمة الجفاف المنشط
لدعم بعض الميزات الجديدة في تطبيق Angular الخاص بنا.
قبل أن ننتقل إلى تحديث مكون تفاصيل الطبق،
أريد أن أعرض طريقة أخرى في ملف service.ts الخاص بي.
حتى فتح ملف service.ts طبق ثم سنقوم بإضافة طريقة جديدة تسمى
GetDishids وهذا في الأساس
سيعود كل معرفات الطبق لجميع الأطباق في مجموعتنا من الأطباق.
لذلك، للقيام بذلك، سوف نستخدم عودة
وطريقة وقبل أن أفعل ذلك،
وهذا هو إرجاع ملحوظ.
من أي نوع؟
هذا هو إرجاع يمكن ملاحظته والذي يتكون من مجموعة من
السلسلة ودعونا تأخير
ذلك بمقدار 2،000 ميلي ثانية أو ثانيتين.
إذن، ما الذي نريد العودة إليه؟
نحن نريد أن نأخذ مجموعة الأطباق،
واستخراج جميع المعرفات من مجموعة الأطباق ومن
ثم إعطائها لمكون صحن التفاصيل لدينا،
لأننا بحاجة إلى ذلك داخل مكون تفاصيل الطبق الخاص بنا لتنفيذ
الميزة الجديدة التي سنقوم بدعمها في تطبيقنا.
الآن، هذه إحدى الطرق التي أريد تنفيذها.
في وقت لاحق، يمكننا أن نرى كيف يمكننا أن نفعل ذلك بطريقة أفضل بكثير،
في واحدة من التدريبات اللاحقة.
في الوقت الحالي، مع طريقة تنفيذ الخدمة،
وهذا هو أفضل ما يمكنني القيام به لتنفيذ هذا الحل لإظهار ميزة جديدة.
لذا، ضمن الملاحظة،
ما سأفعله هو،
سآخذ مجموعة الأطباق وصفيف الأطباق.
سأستخدم الخريطة،
مشغل صفيف، خريطة مشغل مصفوفة JavaScript.
لذا، فإن مشغل الخريطة،
كيف يعمل هو أنه يأخذ كل عنصر من مجموعة الأطباق ويمكننا تعيين
هذا العنصر إلى عنصر آخر ثم إنشاء
مصفوفة أخرى ثم إرجاع ذلك الصفيف المعدل.
لذلك، لكل عنصر في مجموعة الأطباق الخاصة بي،
وأنا ذاهب لاتخاذ هذا البند ثم بدلا من ذلك
استخراج معرف الطبق ومن ثم من معرف الطبق.
لذلك، سوف ينتهي بي الأمر ببناء مصفوفة جديدة للخروج منه،
والتي تحتوي فقط على المعرفات،
لذلك مجموعة من المعرفات ونرى بالفعل أن المعرفات هي سلسلة،
وهذا ما سأعود من معرف الطبق الخاص بي هنا.
هذا كل شيء، مشغل مصفوفة الخريطة.
إذا نظرت إلى مشغلي صفيف JavaScript،
فسترى ما يفعله مشغل مصفوفة الخرائط. في
الواقع، فإن مشغل مصفوفة الخرائط
مثير للاهتمام أيضًا من منظور المرصد،
لأنه يمكن ملاحظته كما رأيت،
يمكن أيضًا النظر إليه كمصفوفة،
تيار من القيم،
والتي يمكن رؤيتها كمصفوفة.
لذلك، يمكن أيضًا استخدام مشغل الخريطة في المرصد.
ولكن في هذه اللحظة، أستخدمه ببساطة كمشغل صفيف جافا سكريبت.
دعونا حفظ التغييرات.
الآن، سوف نذهب إلى مكون تفاصيل الطبق ثم تحديث مكون تفاصيل الطبق.
الآن، ضمن مكون تفاصيل الطبق،
جنبا إلى جنب مع الطبق،
سأقوم بإعلان متغير يسمى ديشيدس،
وهو مجموعة من السلسلة.
هذا ديشيدس سوف تخزين جميع المعرفات من
جميع الأطباق التي هي في مجموعتي من الأطباق في القائمة بلدي.
ثم، سيكون لدي أيضا
اثنين من المتغيرات الأخرى تسمى السابقة والقادمة من سلسلة نوع.
الآن، لماذا أحتاج هذه؟
سيصبح ذلك أكثر وضوحًا،
بمجرد تنفيذ العرض،
حيث سأستفيد من هذا.
الآن، ما سأفعله هنا هو أنه،
داخل بلدي ngInit في وقت سابق،
سمحنا للمعرف يساوي بالإضافة إلى هذا المسار.
عندما فعلت هذا في التمرين السابق،
لم أشرح لك ما كانت تفعله اللقطة ولماذا نفعل ذلك بهذه الطريقة؟
لأنك كنت بحاجة إلى فهم الملاحظات،
قبل أن تفهم ما تعنيه اللقطة.
الآن، في Angular، توفر خدمة المسار المنشط مجموعة من المرصد.
واحدة من الملاحظات تسمى المعلمات.
ما تقدمه لنا هذه المعلمات،
هو طريقة للحصول على قيم المعلمات داخل عنوان URL الخاص بي.
لذلك، رأيت أنه عند تقديم معلمات المسار،
قمت بتقديم أحد معلمات المسار كمعرف نقطتين.
يصبح معرف القولون هذا متاحًا كملاحظة.
لذلك، كلما تغيرت هذه القيمة،
يمكنك ملاحظة التغييرات في هذه القيمة ومن ثم اتخاذ إجراء في المقابل.
ولكن، في وقت سابق عندما قمنا بتنفيذ مكون تفاصيل الطبق،
لم نكن نعرف عن الملاحظ.
لذلك، لم أستطع أن أشرح ما كانت تفعله اللقطة في تلك المرحلة.
الآن، اسمحوا لي أن أعود وأشرح بالضبط ما تفعله اللقطة.
عندما نستخدم هذا كلقطة هنا،
ما نقوم به هو،
نحن نأخذ لقطة واحدة من
خدمة المسار ومن ثم نحصل على
المعلمة التي يمكن ملاحظتها في تلك النقطة الزمنية المحددة.
قيمة المعلمات في تلك النقطة المحددة من
الزمن ومن ثم الاستفادة منها في تطبيقنا.
على الرغم من أن هذه ليست الطريقة المثالية للقيام بذلك.
بدلاً من ذلك، دعونا نستخدم ما يمكن ملاحظته
مباشرة ثم نرد كلما تغيرت هذه التغييرات الملحوظة.
لذا، كيف يمكننا تحديث هذا الرمز للاستفادة من الملاحظة مباشرة؟
لذلك، ما ندركه هو أنه من خدمة الطريق المنشط،
لدينا المعلمات يمكن ملاحظتها المتاحة لنا.
لذلك، سنستفيد من المعلمات التي يمكن ملاحظتها وفي
أي وقت يكون هناك تغيير في حيث المعلمات يمكن ملاحظتها،
يمكننا بدء تغيير داخل مكون DishDetail الخاص بنا.
اسمحوا لي أن أوضح لكم كيف سنستفيد من
المعلمات التي يمكن ملاحظتها من خلال تحديث هذا الرمز.
لذلك، الذهاب إلى هذا الرمز،
ما سأفعله الآن،
هو أنني سأغير هذا إلى القول،
«لدي هذا الطريق ومن هذا الطريق،
لدي المعلمات المتاحة بالفعل.»
لذلك، أنا ذاهب لإزالة لقطة وأنا استخدام المعلمات.
لذلك، مع هذه المعلمات،
ما لدي الآن هو الوصول إلى المعلمات يمكن ملاحظتها.
الآن، بما أن لدينا هذه المعلمات يمكن ملاحظتها،
سأستخدم مشغل على هذه المعلمات التي يمكن ملاحظتها ثم تعديله.
لذا، فإن المشغل الذي سأستخدمه يسمى مشغل SwitchMap.
يتيح لي مشغل SwitchMap
الاستفادة من المعلمات التي يمكن ملاحظتها وترى الخط الأحمر المتعرج الذي
يعني أنني بحاجة إلى استيراد SwitchMap يمكن ملاحظتها هنا.
لذا، سأذهب إلى
مدخلاتي هنا
ثم سأدخل rxjs والمشغل.
لذلك، من المعلمات يمكن ملاحظتها،
أحصل على المعلمات التي هي من نوع بارامز.
لذلك، تذكر أننا استوردنا المعلمات من مكتبة جهاز التوجيه هنا.
لذلك، انطلقنا إلى المعلمات هنا،
من مكتبة جهاز التوجيه وأيضا قمنا باستيراد خدمة مسار التنشيط هنا،
ومن ثم جعلناها متاحة داخل المنشئ لدينا هنا،
من خلال مسار المنشط.
لذلك، هذا هو السبب في أننا قادرون على القيام بهذه المعلمات الطريق للحصول على عقد من المعلمات يمكن ملاحظتها.
سأستخدم مشغل SwitchMap على المعلمات التي
يمكن ملاحظتها ثم عندما أحصل على المعلمات يمكن ملاحظتها،
ما سأقوم به هو أخذ ذلك ثم أقول، هذا DishService.
GetDish، ومن ثم يجب الحصول على هذا المعرف الآن باستخدام المعلمات.
ترى المعلمة التي لدينا هناك.
من المعلمات، سأقول بين قوسين معرف.
لذا، ما يحدث هو أنه كلما تغيرت المعلمات التي يمكن ملاحظتها القيمة،
مما يعني أن قيمة معلمة المسار تتغير، ثم على الفور،
سيأخذ مشغل خريطة التبديل قيمة المعلمات،
ثم يقوم بـ getDish من DishService الخاص بي.
لذلك، سيتم بدء هذا تلقائيا،
وهذا سيكون متاحا كما الآخر يمكن
ملاحظتها التي تنبعث من خلال القيام هذا المشغل خريطة التبديل على هذا يمكن ملاحظتها.
لذلك، نحن إنشاء جديد يمكن ملاحظته وهو getDish،
الذي سيعود كائن الطبق هنا.
الآن، بمجرد أن نحصل على getDish هناك
، يمكن الآن أن تكون متاحة كملاحظة.
أنا فقط أشترك في ذلك يمكن ملاحظتها باستخدام الاشتراك هنا.
ثم، هناك أحصل على الطبق.
يتم الحصول على هذا الطبق عن طريق القيام بهذا GetDish هنا.
هذا الطبق، ثم يمكنني الاستفادة منه لتعيينه في
متغير الطبق الذي أعلنته في وقت سابق.
لذا، بهذه الطريقة، يتم تحديث طبقي الآن.
لذلك، في أي وقت المعلمات يمكن ملاحظتها التغييرات،
سيتم تحديث طبقي إلى الطبق الجديد.
لذلك، لاحظ كيف أنا أخذ واحد يمكن ملاحظتها، المعلمات يمكن ملاحظتها،
ومن ثم أنا تعيين المعلمات يمكن ملاحظتها في آخر يمكن ملاحظتها والتي هي في الأساس
في جلب قيمة الطبق من بلدي ديشسرفيس،
ومن ثم جعل ذلك متاحا كما يمكن ملاحظتها.
ثم، أنا أشترك في أن يمكن ملاحظتها هنا، وبعد ذلك،
أنا الحصول على قيمة الطبق هنا،
ثم أقوم بتعيين قيمة الطبق أو بالأحرى
جعل متغير الطبق يساوي قيمة الطبق هنا.
لاحظ كيف باستخدام المرصد،
يمكنك الآن أخذ واحد يمكن ملاحظته ثم تعيينه إلى آخر يمكن ملاحظته.
لماذا هذا مثير للاهتمام؟
إذا كان الآن، لدي طريقة لتعديل هذه المعلمة الطريق،
ثم سوف تكون قادرة على التبديل بين أطباق مختلفة ورؤية أطباق مختلفة.
لسوء الحظ، ليس لدي ذلك في المكان
لذلك، أنا بحاجة إلى تعديل مكونات الطبق لتمكينني من القيام بذلك.
الآن، هذا هو المكان الذي سوف تشمل اثنين من الأزرار في وجهة نظري والتي عندما أنقر،
وسوف تكون قادرة على التنقل من خلال قائمة بلدي من الأطباق.
الآن، لتكون قادرة على التنقل من خلال قائمة بلدي من الأطباق،
وأنا بحاجة إلى معرفة مجموعة من جميع الأطباق بلدي،
أو على الأقل أنا بحاجة لمعرفة هوية جميع الأطباق بلدي.
هذا هو السبب في أنني استخدم هذا ديشيدس هنا، حسنا؟
لذلك، الآن ترى لماذا قمت بتضمين طريقة ديشيدس في بلدي ديشسرفيس.
لذلك، ثم أبدأ.
أنا ذاهب أولا الحصول على
ديشيدس عن طريق
استدعاء ديشسرفيس،
جيتديشيدس الأسلوب في هذه المرحلة.
ما زلت أعمل مع الطريقة القديمة للقيام بالأشياء.
لا بد لي من إدراك أن هذا GetDishids يرسل في ملاحظتها.
لذلك، أنا بحاجة إلى الاشتراك في ذلك يمكن ملاحظتها.
ترى كيف تحتاج إلى تغيير طريقة
تفكيرك عندما تعمل مع المتغيرات هنا.
لذلك، نود أن نقول ديشيدس الاشتراك،
وداخل الاشتراك،
وسوف نحصل على المعلمة التي هي مجموعة سلسلة،
وبعد ذلك أود أن أقول الحق هناك،
ديشيدس سيكون مساويا لديشيدس.
انظر، كم هو سهل
لتغيير طريقة تفكيرك عندما تريد التعامل مع أمر يمكن ملاحظته.
لذا، فإن GetDishids يرسل ملاحظة،
وأنا أشترك في ذلك يمكن ملاحظتها ومن ثم لدي ديشيدس هنا المتاحة.
ثم، أيضا عن طريق الاشتراك في المعلمة.
إذا كان بإمكاني تغيير المعلمة الخاصة بي،
قيمة معلمة مسار القيمة داخل شفرتي،
فسأتمكن من التنقل بين الأطباق.
لذلك، دعونا تنفيذ هذا الجزء.
هذا أصبح مثيراً للاهتمام
لذلك، لتمكينني من القيام بذلك،
لذلك سوف أعرض طريقة أخرى هنا تسمى setPrevNext
، ولهذا، سأرسل معلمة Dishid.
الآن، نظرا لبلدي ديشيد الحالي،
أردت أن تكون قادرة على العثور على ديشيد السابق والقادم حتى أتمكن من تنفيذ
بلدي الملاحة بين الأطباق داخل بلدي عنصر ديشيتايل.
لذلك، هذا هو السبب في أنني أعلنت السابقة والقادمة.
الآن، أنا بحاجة إلى أن تكون قادرة على تهيئة هاتين القيمتين.
كل ما أعرفه الآن هو ديشيد الحالي.
لذلك، باستخدام ديشيد الحالي،
أريد أن تكون قادرة على العثور على ديشيد السابق والقادم.
لذلك، في هذه الطريقة،
سأقوم بعمل dished السابق والقادم.
لذلك، هنا سأقول،
دعونا مؤشر يساوي هذا ديشيدس.
الآن، أنا أعرف فقط هوية طبقي،
ولكن هوية طبقي لا تعطيني كل شيء.
أنا بحاجة إلى أن تكون قادرة على العثور على الطبق في هذه المجموعة من المعرفات،
لذلك هذا هو السبب في أنني أقول هذا ديشيدس، و indexOf.
يجب أن تعرف مشغل indexOf على صفيف JavaScript.
يأخذ عامل التشغيل IndexOf قيمة ثم يجد فهرس تلك القيمة في الصفيف.
لذا، IndexOf والمعلمة هنا،
سأعطي هو Dishid،
و Dishid الذي سأحصل عليه في فترة قصيرة.
الآن، بمجرد الحصول على فهرس هذه القيمة الحالية،
يمكنني بعد ذلك تعيين
ديشيدس السابقين.
لذلك، هذا هو المكان الذي
سأفعل بعض الشيء من التعليمات البرمجية صعبة هنا من شأنها أن تسمح لي أن التفاف حولها عندما أكون.
لذلك، لاحظ أن هذا الصفيف ديشيدس يحتوي على عدد معين من القيم هناك.
إذا كانت القيمة الحالية لـ DisHid هي العنصر الأول،
فستكون القيمة السابقة العنصر المفهرسة صفر في الصفيف الخاص بي.
ولكن إذا كانت القيمة الحالية هي العنصر صفر،
العنصر الأول في صفيف بلدي،
ثم أريد أن التفاف حول للحصول على العنصر الأخير في صفيف بلدي.
لذا، هذا هو المكان الذي أستفيد فيه من مشغل modulo مع
بعض الطرق الرياضية للالتفاف حول الأشياء.
لذلك، أود أن أقول هذا ديشيد
زائد مؤشر ناقص واحد، و مودولو هذا طول ديشيدس.
لذلك، ما أفعله هو،
فإن القيمة السابقة ستكون المؤشر الحالي،
مؤشر القيمة الحالية،
بالإضافة إلى طول الأطباق ناقص واحد.
الآن، إذا كان المؤشر هو واحد،
مؤشر ناقص واحد سيعطيني صفر.
إذا كان المؤشر هو صفر،
مؤشر ناقص واحد سيعطيني ناقص واحد،
ولكن هذا ليس ما أريد.
أريد أن التفاف حولها والحصول على طول ديسد ناقص واحد.
لذلك، هذا هو السبب في أنني بما في ذلك هناك،
ومن ثم القيام مودولو مع ديشيدس.
لذلك، عندما يكون الفهرس صفرًا،
سألتف للحصول على العنصر الأخير في صفيفي.
لذا، هذه هي الطريقة التي أقوم بها بتهيئة القيمة السابقة.
ثم، القيمة التالية،
وسوف تستخدم نفس النهج،
ولكن التفاف حولها عن طريق قول مؤشر زائد واحد.
لذلك، إذا كنت حاليا في العنصر الأخير في الصفيف،
ثم أريد أن التفاف حولها إلى الصفر.
لذلك، هذا هو الجزء الآخر من ما أفعله.
لذلك، هناك، أنا تعيين السابق والقادم.
لذا، متى يجب أن أقوم بتعيين السابق والتالي؟
في أي وقت يتغير طبقي،
يجب أن أكون قادراً على بدء مكالمة لهذا.
الآن، أين يمكنني تغيير قيمة الطبق الخاص بي؟
وبالنظر إلى الوراء في الاشتراك هنا،
لاحظ أن هناك حق،
كنت تغيير الطبق الخاص بك في كل مرة أن تتغير المعلمة لدينا.
لذلك، في هذه المرحلة،
أريد إعادة تعيين القيمة السابقة والتالية.
لذلك، أنا ذاهب لتغيير هذا إلى كتلة من التعليمات البرمجية هنا.
ثم، أود أن أقول هذا سيتبرينكست،
ومن ثم سيتم ديشيد المعلمة.
هذا هو. لذلك، مع هذا التغيير،
ما يحدث هو في كل مرة يتم تحديث طبق بلدي،
وسوف تحديث السابقة والقادمة أيضا في المقابل من هنا.
لذلك، مع هذا التغيير قليلا،
بلدي ديسد سيكون الطبق الحالي.
السابقة سوف تشير إلى الطبق السابق،
وسيتم الإشارة إلى التالي إلى DISHID المقبل.
لذا، لدي كل الثلاثة التي أحتاجها
الآن، يمكنني الاستفادة من هذه القيم الثلاث من أجل تنفيذ طريقة التنقل
بين الأطباق في القالب الخاص بي من خلال تضمين اثنين من الأزرار في القالب الخاص بي.
لذلك، دعونا نذهب إلى قالب مكونات dishdetaille،
ومن ثم تضمين اثنين من الأزرار التي تمكني من التنقل بين الأطباق.
الذهاب إلى مكون تفاصيل الطبق بينما أنا هنا،
اسمحوا لي أن تأخذ هذا NGiF من هذه البطاقة ومن ثم نقله إلى div هناك.
أريد إخفاء div بأكمله،
عندما لا يكون طبقي حاليًا معيبًا،
وبالمثل للتعليقات أيضًا.
أجد هذا أن يكون قليلا
متخبط عندما يتم جلب معلومات طبق بلدي من الخادم.
لذلك، سأقوم بإجراء هذا التغيير لكل من divs أن
أحدهما يعرض التعليقات والآخر يعرض تفاصيل الطبق في البطاقة.
مع هذين التحديثين،
داخل إجراءات بطاقتي،
سأقوم بتضمين
زر واحد آخر من نوع الزر بوضوح وهذا الزر،
وسوف أقوم بتضمين RouterLink.
في اللحظة التي ترى فيها رابط جهاز التوجيه،
تقول على الفور، «أوه،
أنا أعرف ما تحاول القيام به.
أنت تحاول تحويل هذا الزر حتى تتمكن من التنقل بين
المكونات المختلفة داخل خدمتي.»
لذلك، بالنسبة
إلى RouterLink، سأقوم بتوفير مجموعة من القيم ومجموعة القيم الخاصة بـ RouterLink،
سأقوم بعمل dishdetaille.
أيضا، الجزء الثاني.
أترى، هذا هو الجزء المثير للاهتمام.
الجزء الثاني من هذه الصفيف سيكون مسبقًا،
وهو المتغير الذي أعلنته في المكون الخاص بي.
لذلك، مع هذا، سيصبح هذا الزر رابطًا للطبق السابق في قائمة الأطباق الخاصة بي.
( سبيفي)، صحيح؟
لذا، مع ذلك، ماذا أيضاً؟
اسمحوا لي إغلاق قبالة زر هنا ومن ثم داخل زر,
أنا ذاهب الى استخدام الخط رهيبة رمز
اتحاد كرة القدم شيفرون اليسار.
لذا، هذا هو. سيكون هذا الزر زر مع رمز هناك.
لذلك، الآن لدينا زر واحد هنا،
وأنا ذاهب أيضا لتشمل زر آخر هنا.
قبل أن أقوم بتضمين الزر،
سأفعل امتداد الطبقة المرنة،
رأيت لي باستخدام الفاصل المرن في واحدة من التدريبات السابقة.
لذلك، ترى ما أفعله،
أنا تمتد لتشمل الزر الثاني.
لذلك، بالنسبة للزر الثاني،
سأقوم فقط بنسخ هذا
ثم لصقه هناك ثم قم بتحديث هذا واحد ليقول السابق.
بدلا من السابق، وسوف أذهب المقبل ثم
فا شيفرون اليسار إلى فا شيفرون اليمين, وهذا كل شيء.
دعونا حفظ التغييرات على مكونات تفاصيل طبق لدينا،
وأيضا الملفات المتبقية.
بعد هذا التحديث، دعنا نذهب وتحقق من ما يفعله تطبيقنا.
الذهاب إلى طلبي في المتصفح،
دعونا نذهب إلى مكون القائمة.
نرى القائمة ودعونا نختار عنصرًا واحدًا من القائمة هنا.
لذلك، لاحظ أنه الآن يتم عرض هذا العنصر من طبق القائمة هنا.
لاحظ في الأسفل،
لدينا زرين هنا، اليسار واليمين.
عندما نضغط على الزر الأيسر،
لاحظ كيف يمكننا الانتقال إلى الطبق السابق في قائمة الأطباق.
يمكنني الاستمرار في العمل اليسار مرة أخرى والاستمرار في التنقل إلى اليسار واليمين.
لاحظ أنه عندما أفعل ذلك،
لا يتم إعادة تحميل وجهة نظري الفعلية،
بدلا من ذلك أنا ذاهب فقط في جلب
البيانات المتعلقة بالأطباق من الخدمة ثم تحديث وجهة نظري هنا.
السبب في أننا قادرون على القيام بذلك هو
أن لدينا الملاحظة، المعلمات يمكن ملاحظتها.
لذلك، في أي وقت أنقر على هذين،
اليسار واليمين، المعلمات يمكن ملاحظتها،
لاحظ كيف في هذه اللحظة يظهر العنوان dishdetaille صفر.
إذا قمت بالنقر فوق اليمين،
فسيتم تحديث ذلك من dishdetail صفر إلى dishdetail واحد.
هذا تغيير المعلمة، وهذا سوف يسبب بلدي يمكن ملاحظته
للذهاب وجلب طبق جديد من خدمة الطبق.
ثم، يتم جلب الطبق الجديد، يتم تحديث
متغير الطبق في المكون الخاص بي،
وعندما يتم تحديث ذلك، يتم تحديث
وجهة نظري أيضًا.
لذا، لاحظ أنني أستخدم نفس العرض،
فأنا قادر على التنقل بين الأطباق المختلفة التي هي جزء من قائمة الأطباق الخاصة بي.
هذا هو الجزء المثير للاهتمام الذي يمكنك الحصول عليه باستخدام المعلمات التي يمكن
ملاحظتها من activator.service داخل تطبيق Angular الخاص بك.
طريقة مثيرة للاهتمام للاستفادة من فواتير الملاحظة لدينا تطبيق الزاوي.
وبطبيعة الحال، فإن الطريقة التي نفذت ذلك،
فعلت ذلك قليلا من طريقة مفتعلة لفعل الأشياء.
كان لا بد لي من الحصول على عقد من قائمة بطاقات الهوية الطبق.
اضطررت إلى تعديل السابقة والقادمة وهلم جرا.
إذا كان لديك طريقة للحصول على
القيمة السابقة والتالية تلقائيًا من خدمتك،
كلما قمت بجلب طبق،
فإن تنفيذ النتيجة سيصبح أسهل قليلاً.
الآن ليس لدينا ذلك
لذلك، عملت حول المشكلة لأنني أردت فقط توضيح طريقة
استخدام ملاحظة مثل هذا داخل تطبيق Angular الخاص بك.
إذا استطعنا تنفيذ الخدمة التي ستعود
القيمة السابقة والتالية كلما جلبنا طبق،
فإن كل هذا الصداع سيكون أكثر بساطة حلها.
دعونا نؤجل هذه الفكرة إلى مرحلة لاحقة.
ولكن في الوقت الحالي، ترى كيف
نستخدم المعلمات التي يمكن ملاحظتها من أجل تنفيذ
طريقة مثيرة للاهتمام لدعم ميزة جديدة داخل تطبيق Angular الخاص بنا.
و هذا يكمل هذا التمرين.
هذا هو الوقت المناسب بالنسبة لك للقيام git الالتزام مع الرسالة RXJS الجزء الثاني.