الوحدة النمطية هي وسيلة مهمة لتنظيم الوحدات النمطية في الزاوي. يوفر القدرة على تغليف مجموعة من مكونات الأعمال المتماسكة (وحدة التحكم ، الخدمة ، المرشح ، التوجيه ...). يمكن أن يؤدي القيام بذلك إلى فصل الكود إلى وحدات وفقًا لمشاكل مجال الأعمال ، ثم استخدام اعتماد الوحدة النمطية لضخ محتوى الوحدة النمطية المرتبطة به ، حتى نتمكن من "فصل التركيز" بشكل أفضل وتحقيق "تماسك عالي أفضل واقتران منخفض". "التماسك العالي والاقتران المنخفض" يأتي من مبدأ التصميم الموجهة للكائنات. يشير التماسك إلى سلامة الوحدة النمطية أو الكائن. يجب تغليف مجموعة من المنطق المرتبط ارتباطًا وثيقًا في نفس الوحدة النمطية والكائن ووحدات التعليمات البرمجية الأخرى ، بدلاً من تنتشر في كل مكان ؛ يشير الاقتران إلى درجة الاعتماد بين الوحدات النمطية والكائنات ووحدات التعليمات البرمجية الأخرى. إذا كان تعديل وحدة واحدة سيؤثر على الوحدة النمطية الأخرى ، فهذا يعني أن الوحدات النمطتين مترابطة ومقترنة بإحكام.
في الوقت نفسه ، الوحدة النمطية هي أيضًا مدخل الكود الزاوي الخاص بنا. أولاً ، تحتاج إلى إعلان الوحدة النمطية ، وبعد ذلك يمكنك تحديد عناصر المكونات الأخرى في Angular ، مثل وحدة التحكم ، الخدمة ، المرشح ، التوجيه ، كتلة رمز التكوين ، كتلة رمز التشغيل ، إلخ.
تعريف الوحدة هو: Angular.Module ('com.ngbook.demo' ، []). فيما يتعلق بوظيفة الوحدة النمطية ، يمكن تمرير ثلاثة معلمات ، وهي:
بالنسبة لطريقة الزنوج. module ، لدينا طرق مشتركة ، وهي angular.module ('com.ngbook.demo' ، [التبعية الاختيارية]) و angular.module ('com.ngbook.demo'). لاحظ أنها طريقة مختلفة تمامًا ، أحدهما هو إعلان وحدة الإنشاء ، والآخر هو الحصول على الوحدة النمطية المعلنة. في التطبيق ، يجب أن يكون إعلان الوحدة النمطية ومرة واحدة فقط ؛ للحصول على الوحدة النمطية ، يمكن أن يكون عدة مرات. يوصى بفصل المكونات الزاوية في ملفات مختلفة ، و Denare Module في ملف الوحدة النمطية ، ومكونات أخرى تقدم الوحدة النمطية. تجدر الإشارة إلى أنه عند إدخاله في العبوة أو البرنامج النصي ، نحتاج إلى تحميل ملف إعلان الوحدة النمطية أولاً ، ثم تحميل وحدات المكونات الأخرى.
في مجموعة المجتمع الصيني الزاوي ، أسمع أحيانًا بعض الطلاب يسألون عن أخطاء "NG: AREQ":
[ng: areq] حجة "democtrl" ليست وظيفة ، لم يتم تعريفها!
هذا غالبًا لأنك تنسى تحديد وحدة التحكم أو تعلن الوحدة النمطية عدة مرات. إن إعلان الوحدة النمطية عدة مرات سيؤدي إلى مسح معلومات تعريف الوحدة النمطية السابقة ، وبالتالي لن يجد البرنامج المكونات المحددة. يمكننا أيضًا أن نتعلم هذا من رمز المصدر الزاوي (من loader.js):
وظيفة setupmoduleLoader (نافذة) {... وظيفة ضمان (obj ، الاسم ، المصنع) {return obj [name] || (OBJ [name] = Factory ()) ؛ } var Angular = تأكد (نافذة ، "Angular" ، كائن) ؛ إرجاع ضمان (Angular ، 'module' ، function () {var modules = {} ؛ وحدة وظيفة الإرجاع (الاسم ، يتطلب ، configfn) {var assertNothAsownProperty = function (name ، context) {if (name === 'hasownproperty') assertnothasownproperty (اسم ، "الوحدة النمطية) ؛ إذا قمت بتسجيل وحدة نمطية ، تأكد من أنك تحدد التبعيات كوسيطة ثانية. "، الاسم) ؛} var invokequeue = [] Invokelater ('$ provide' ، 'Provider') ، Factory: Invokelater ('$ provie' ، 'factory') ، service: invokelater ('$ provie' ، 'service') ، value: invokelater ('$ proving' ، 'value') ، ثابت: invokelater ('$ proving' ، 'unshift') invokelater ($ filterprovider "،" التسجيل ") ، Invokelater ('$ controllerprovider' ، 'التوجيه: vokelater (' $ compileprovider '،" التوجيه) ModuleInstance ؛ } ؛ }) ؛ }في الكود ، يمكننا أن نفهم أنه عند بدء تشغيل Angular ، فإنه سيقوم بإعداد كائن زاوي عالمي ، ثم نشر API الوحدة على الكائن الزاوي. فيما يتعلق برمز API للوحدة ، يمكنك رؤية السطر الأول من بيان المسند. لا يمكن تسمية اسم الوحدة على اسم HasownProperty ، وإلا سيتم طرح رسالة خطأ من "BadName". بعد ذلك مباشرة ، إذا تم تمرير معلمة الاسم ، مما يشير إلى أنه يتم الإعلان عن وحدة نمطية ، فسيتم حذف معلومات الوحدة النمطية الحالية وتعيينها على NULL.
من تعريف ModuleInstance ، يمكننا أن نرى أن واجهات برمجة التطبيقات المكشوفة بواسطة Angular.Module هي: Invokequeue ، الحاجز ، المتطلبات ، الاسم ، المزود ، المصنع ، الخدمة ، القيمة ، الثابت ، الرسوم المتحركة ، المرشح ، وحدة التحكم ، التوجيه ، التكوين ، والتشغيل. من بينها ، إن Invokequeue و Runblocks هي سمات خاصة متفق عليها بالاسم. من فضلك لا تستخدمها في الإرادة. واجهات برمجة التطبيقات الأخرى هي طرق تعريف المكون الزاوي شائع الاستخدام. من رمز Invokelater ، يمكنك أن ترى أن إرجاع تعريفات المكون الزاوي هذا لا يزال مثيل ModuleInstance ، والذي يشكل واجهة برمجة تطبيقات سلسة. يوصى باستخدام تعريفات السلسلة لتحديد هذه المكونات بدلاً من إعلان متغير الوحدة العالمية.
أخيرًا ، إذا تم تمرير configfn المعلمة الثالثة ، فسيتم تكوينه في معلومات التكوين. عندما يدخل الزاوي مرحلة التكوين ، سيتم تنفيذها بدورها لتكوين التطبيق الزاوي أو المكونات الزاوية مثل الخدمة قبل الاستئصال.
ما سبق هو عبارة عن مجموعة من عبارة الوحدة الزاوية والمعلومات التي تم الحصول عليها بشكل زائد. سنستمر في إضافة المعلومات ذات الصلة في المستقبل. شكرا لدعمكم لهذا الموقع!