البرمجة

تحديث Angular2 RC.6: حل مشكلة No provider for ConnectionBackend

بعد التحديث الأخير إلى النسخة الأحدث من Angular2، RC.6، تبدو أكبر التغييرات المؤدية للاختراق فيها هي عملية التشغيل بأكملها (من خلال “إدخال” ngModule).

لكن بعد الكثير من الدموع والعرق والتضرع إلى جميع الآلهة التي يمكنني التفكير فيها… لا زلت أعاني مع ما يأمل أن يكون آخر خطأ في سلسلة من الأخطاء الكثيرة:

“No provider for ConnectionBackend!”

في هذه النقطة، أنا أقوم بمزيد من التشابك لأنني غير مدرك تمامًا لـ “ما الذي أفتقده”.

لكن دعني أوضح لك بشكل مفصل ما يحدث هنا. في Angular 2 RC.6، تم إزالة ConnectionBackend واستبدالها بـ HttpClientModule. يبدو أن الخدمة التي تحاول الوصول إليها تستخدم ConnectionBackend، الذي تمت إزالته. لذا، يجب عليك تعديل كودك لاستخدام HttpClientModule بدلاً من HttpModule.

لحل هذه المشكلة، يمكنك القيام بالتالي:

  1. استبدال HttpModule بـ HttpClientModule في قائمة الاستيرادات في AppModule:
typescript
import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [HttpClientModule, BrowserModule, FormsModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [AppComponent, ...], providers: [FrameService, { provide: $WINDOW, useValue: window }], bootstrap: [AppComponent] }) class AppModule { }
  1. قم بإزالة الاعتماد على Http من قائمة المزودين:
typescript
providers: [FrameService, { provide: $WINDOW, useValue: window }],

بعد تطبيق هذه الخطوات، يجب أن تتجاوز مشكلة “No provider for ConnectionBackend!”.

بالطبع، يجب أن تتأكد أيضًا من تحديث أي استخدام لخدمات Http في التطبيق لاستخدام الطريقة الجديدة المقدمة بواسطة HttpClientModule. هذا يشمل أيضًا استخدام HttpClient بدلاً من Http في أي مكان يتم استخدامها في كود التطبيق.

أتمنى أن تساعدك هذه الإرشادات في حل مشكلتك وتجنب مزيد من الصعوبات والدموع!

المزيد من المعلومات

بعد التحديث الأخير إلى النسخة الأحدث من Angular2، RC.6، تبدو أكبر التغييرات المؤدية للاختراق فيها هي عملية التشغيل بأكملها (من خلال “إدخال” ngModule).

لكن بعد الكثير من الدموع والعرق والتضرع إلى جميع الآلهة التي يمكنني التفكير فيها… لا زلت أعاني مع ما يأمل أن يكون آخر خطأ في سلسلة من الأخطاء الكثيرة:

“No provider for ConnectionBackend!”

في هذه النقطة، أنا أقوم بمزيد من التشابك لأنني غير مدرك تمامًا لـ “ما الذي أفتقده”.

لكن دعني أوضح لك بشكل مفصل ما يحدث هنا. في Angular 2 RC.6، تم إزالة ConnectionBackend واستبدالها بـ HttpClientModule. يبدو أن الخدمة التي تحاول الوصول إليها تستخدم ConnectionBackend، الذي تمت إزالته. لذا، يجب عليك تعديل كودك لاستخدام HttpClientModule بدلاً من HttpModule.

لحل هذه المشكلة، يمكنك القيام بالتالي:

  1. استبدال HttpModule بـ HttpClientModule في قائمة الاستيرادات في AppModule:
typescript
import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [HttpClientModule, BrowserModule, FormsModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [AppComponent, ...], providers: [FrameService, { provide: $WINDOW, useValue: window }], bootstrap: [AppComponent] }) class AppModule { }
  1. قم بإزالة الاعتماد على Http من قائمة المزودين:
typescript
providers: [FrameService, { provide: $WINDOW, useValue: window }],

بعد تطبيق هذه الخطوات، يجب أن تتجاوز مشكلة “No provider for ConnectionBackend!”.

بالطبع، يجب أن تتأكد أيضًا من تحديث أي استخدام لخدمات Http في التطبيق لاستخدام الطريقة الجديدة المقدمة بواسطة HttpClientModule. هذا يشمل أيضًا استخدام HttpClient بدلاً من Http في أي مكان يتم استخدامها في كود التطبيق.

أتمنى أن تساعدك هذه الإرشادات في حل مشكلتك وتجنب مزيد من الصعوبات والدموع!

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر