EMIT EMIT أو $ البث الأحداث من الخدمة والاستماع إليها في وحدة تحكم (أو عدة)

StackOverflow https://stackoverflow.com//questions/23013883

سؤال

قد أرجبت مثالا بسيطا حيث أرغب في تنبعثها / بث حدث من خدمة وأريد أن يستمع هذا الحدث بواسطة وحدة تحكم وتغيير واجهة المستخدم، لكنني لا أستطيع أن أجعله يعمل وتصحيح التعليمات البرمجيةيبدو أنه يتوقف في المستمع ولكنه لا ينفذ الوظيفة.

p>

href="http://plnkr.co/edit/eglcq7zellfkp86dyzoe؟p=preview" rel="nofollow"> http://plnkr.co/edit/eglcq7zellfkp86dyzoe؟p=preview / ص>

الخدمة:

giveacodicetagpre.

وحدة تحكم

giveacodicetagpre.

فهرس

giveacodicetagpre.

الحل:

كما ذكرت Ivarni أو العلامة التجارية والتر، فإن الدعوة إلى وظيفة الخدمة التي تؤدي إلى وضع الحدث بعد المستمع، إن لم يكن أنت تسبب حدثا لا يحتوي على مستمع قادر على الاستماع بعد.

نحتاج فقط لتغيير وحدة التحكم كما يلي:

الخدمة

giveacodicetagpre.

هل كانت مفيدة؟

المحلول

أنت تؤدي إلى الحدث قبل أن تعلق المستمع.

جرب هذا:

giveacodicetagpre.

نصائح أخرى

فقط ضع Servicetest.test () أسفل مستمعك في جهاز التحكم الخاص بك، مثل هذا:

giveacodicetagpre.

تقوم بإرفاق المستمع بعد اختبار استدعاء ()، وهناك لم يفقد الحدث فقط.

الحل الذي وجدته في العمل الأفضل في تطبيق متوسط الحجم هو إنشاء غلاف حول وظيفة EMIT $، ولإخراج $ NEMIT مع بضع مللي ثانية، يكفي لجميع الأحداث التي سيتم تسجيلها.

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

إليك الكود المصدر بأكمله: http://jsfiddle.net/gabrielcatalin/2urr7

وهنا مقتطف:

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top