جون ، في Y031 ذكرت ما يلي:
على سبيل المثال ، عند نشر الأحداث والاشتراك فيها باستخدام $ emit أو $cast أو $ on ، ضع في اعتبارك نقل هذه الاستخدامات إلى مصنع واستدعاء من وحدة التحكم.
هل يمكنك التوسع قليلاً في كيفية تنفيذ ذلك؟ عينة كود سيكون لطيفا!
لقد تساءلت عن هذا أيضًا ووجدت سؤال / إجابة stackOverflow التالية: http://stackoverflow.com/questions/14056874/how-to-emit-events-from-a-factory
أنا مبتدئ إلى حد ما فيما يتعلق بالزاوية ، لذا إذا كانت هذه ممارسة سيئة ، أخبرني أحدهم من فضلك. :)
أعتقد أنه يعتمد أيضًا على ما إذا كنت في مشروع زاوي خالص أو مشروع قديم / هجين.
على سبيل المثال ، تريد مشاركة نفس الحدث داخل وخارج إطار العمل الزاوي الجانبي
جعل الحانة / الفرعية في مصنع تجعل التنفيذ البديل أسهل لاستبدال $ emit ، $ البث.
على سبيل المثال http://jonathancreamer.com/an-angular-event-bus-with-postal-js/
أنا أيضًا أواجه مشكلة في فهم الجملة التالية من Y031 :
ضع في اعتبارك استخدام نطاق $ في وحدة تحكم فقط عند الحاجة. على سبيل المثال ، عند نشر الأحداث والاشتراك فيها باستخدام $ emit أو $cast أو $ on ، ضع في اعتبارك نقل هذه الاستخدامات إلى مصنع واستدعاء من وحدة التحكم.
إذن ، استنتاج الجملة أعلاه هو تجنب البث على الإطلاق باستخدام المصانع؟ إذا كان الأمر كذلك ، فإنني أقترح صياغة مختلفة.
أنا لا أفكر في الاتصال بين وحدات التحكم ولكن بدلاً من التغييرات الرئيسية في الحالة مثل تسجيل الدخول / تسجيل الخروج. بما أنني ربما يتعين علي إبلاغ جميع المكونات حول ذلك إلى حد كبير إذا شعرت أنها مهمة مناسبة للبث؟
إذا فهمت بشكل صحيح ، أعتقد أنك تسيء فهم هذاsebastianhaas. يقترح هذا المقطع في دليل النمط نقل استخدام $emit
أو $broadcast
أو $on
إلى مصنع ، وليس استبدال الاستخدام _ مع مصنع.
شكرا لإجابتكzachlysobey! نعم ، لكن كيف ستحقق ذلك؟ لنفترض أنني أريد تحديث القيم في وحدة تحكم في بعض عمليات البث. إذا قمت بنقل هؤلاء $on
إلى مصنع ، فأنا أتساءل عن كيفية إبلاغ وحدة التحكم مرة أخرى.
اسمحوا لي أن أوضح ... لدي جملة محيرة هناك. كانت النقطة هي استخدام نطاق $ فقط عند الحاجة. وهو عندما يكون لديك مجال للتعامل مع الوظيفة. وهذا يشمل البث أو البث. هؤلاء لا بأس بهم في وحدة التحكم إذا ، وفقط إذا ، كانت الرسالة هي ما تحتاج إلى إرساله. ولكن قد ترغب أيضًا في التفكير في خيارات أخرى أيضًا.
كنت أحاول أن أكون حذرًا هنا لأنني أريد تثبيط نطاق التطبيق في وحدات التحكم أيضًا.
أزلت الجملة.
شكرا جزيلا!
التعليق الأكثر فائدة
رؤية عظيمة هنا http://stackoverflow.com/questions/11252780/whats-the-correct-way-to-communicate-between-controllers-in-angularjs/19498009#19498009