Angular-styleguide: Memindahkan $emit, $broadcast, atau $on ke pabrik?

Dibuat pada 12 Mei 2015  ·  8Komentar  ·  Sumber: johnpapa/angular-styleguide

John, di Y031 Anda menyebutkan yang berikut:

Misalnya saat memublikasikan dan berlangganan acara menggunakan $emit, $broadcast, atau $on, pertimbangkan untuk memindahkan penggunaan ini ke pabrik dan memanggil dari controller.

Bisakah Anda sedikit memperluas tentang cara menerapkan ini? Contoh kode akan menyenangkan!

question

Semua 8 komentar

Saya bertanya-tanya ini juga dan menemukan pertanyaan/jawaban stackOverflow berikut: http://stackoverflow.com/questions/14056874/how-to-emit-events-from-a-factory

Saya cukup pemula dalam hal sudut, jadi jika ini adalah praktik yang buruk, seseorang tolong beri tahu saya. :)

Saya pikir itu juga tergantung pada apakah Anda berada dalam proyek sudut murni atau proyek warisan/hibrida.
yaitu Anda ingin berbagi acara yang sama di dalam dan di luar kerangka kerja Sudut
membuat pub/sub menjadi pabrik membuat implementasi alternatif lebih mudah untuk menggantikan $emit, $broadcast.
misalnya http://jonathancreamer.com/an-angular-event-bus-with-postal-js/

Saya juga kesulitan memahami kalimat berikut dari Y031 :

Pertimbangkan untuk menggunakan $scope di pengontrol hanya jika diperlukan. Misalnya saat memublikasikan dan berlangganan acara menggunakan $emit, $broadcast, atau $on, pertimbangkan untuk memindahkan penggunaan ini ke pabrik dan memanggil dari controller.

Jadi kesimpulan dari kalimat di atas adalah untuk menghindari siaran sama sekali dengan penggunaan pabrik? Jika demikian, saya akan menyarankan formulasi yang berbeda.

Saya tidak memikirkan komunikasi antar-pengontrol melainkan tentang perubahan status utama seperti login/logout. Karena saya mungkin harus memberi tahu hampir semua komponen tentang itu jika terasa seperti tugas yang tepat untuk siaran?

Jika saya mengerti dengan benar, saya pikir Anda salah paham @sebastianhaas ini. Bagian dalam panduan gaya ini menyarankan untuk memindahkan penggunaan $emit , $broadcast , atau $on ke pabrik, bukan mengganti penggunaan _dengan_ pabrik.

Terima kasih atas jawaban Anda @zachlysobey! Ya, tetapi bagaimana Anda mencapainya? Mari kita asumsikan saya ingin memperbarui nilai dalam pengontrol pada siaran tertentu. Jika saya memindahkan $on itu ke pabrik, saya bertanya-tanya bagaimana cara memberi tahu pengontrol lagi.

Biarkan saya mengklarifikasi ... Saya memiliki kalimat yang membingungkan di sana. Intinya adalah hanya menggunakan $scope saat dibutuhkan. Saat itulah Anda harus memiliki ruang lingkup untuk menangani pekerjaan itu. Ini termasuk siaran atau pancarkan. Itu baik-baik saja di pengontrol jika, dan hanya jika, sebuah pesan adalah apa yang perlu Anda kirim. Tetapi Anda mungkin juga ingin mempertimbangkan opsi lain juga.

Saya mencoba untuk berhati-hati di sini karena saya ingin mencegah scope.apply di controller juga.

saya hapus kalimatnya.

Terima kasih banyak!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Foxandxss picture Foxandxss  ·  13Komentar

yosiasz picture yosiasz  ·  7Komentar

annabellor picture annabellor  ·  9Komentar

jusefb picture jusefb  ·  9Komentar

xavhan picture xavhan  ·  5Komentar