Angular-styleguide: $ emit、$ Broadcast、または$ onを工場に移動しますか?

作成日 2015年05月12日  ·  8コメント  ·  ソース: johnpapa/angular-styleguide

ジョン、Y031であなたは次のように述べています:

たとえば、$ emit、$ Broadcast、または$ onを使用してイベントを公開およびサブスクライブする場合は、これらの使用をファクトリに移動し、コントローラーから呼び出すことを検討してください。

これを実装する方法について少し詳しく教えてください。 コードサンプルがいいでしょう!

question

最も参考になるコメント

全てのコメント8件

私もこれを疑問に思い、次のstackOverflowの質問/回答を見つけました: http ://stackoverflow.com/questions/14056874/how-to-emit-events-from-a-factory

私は角度に関してはかなり初心者なので、これが悪い習慣である場合は、誰かに教えてください。 :)

それは、あなたが純粋な角度のあるプロジェクトにいるのか、レガシー/ハイブリッドプロジェクトにいるのかにもよると思います。
つまり、Angularフレームワークの内外で同じイベントを共有したい
pub / subをファクトリにすることで、$ emit、$ broadcastを置き換える代替実装が簡単になります。
:http

Y031の次の文章を理解するのに苦労しています。

必要な場合にのみ、コントローラーで$ scopeを使用することを検討してください。 たとえば、$ emit、$ Broadcast、または$ onを使用してイベントを公開およびサブスクライブする場合は、これらの使用をファクトリに移動し、コントローラーから呼び出すことを検討してください。

それで、上記の文の結論は、工場を使用して放送をまったく避けることですか? もしそうなら、私は別の処方を提案したいと思います。

私はコントローラー間の通信については考えていませんが、ログイン/ログアウトなどの主要な状態の変化について考えています。 ブロードキャストの適切なタスクのように感じる場合は、ほとんどすべてのコンポーネントにそのことを通知する必要がある可能性がありますか?

私が正しく理解していれば、あなたはこの@sebastianhaasを誤解していると思います。 スタイルガイドのこの一節は、 $emit$broadcast 、または$onの使用法をファクトリに置き換えるのではなく、ファクトリに移動することを提案しています。

@zachlysobeyの回答ありがとうございます! はい、でもどうやってそれを達成しますか? 特定のブロードキャストでコントローラーの値を更新したいとします。 それらの$on工場に移動した場合、コントローラーに再度通知する方法がわかり

はっきりさせておきましょう...そこに紛らわしい文章がありました。 重要なのは、必要な場合にのみ$ scopeを使用することでした。 それはあなたが仕事を処理するためのスコープを持たなければならないときです。 これには、ブロードキャストまたは送信が含まれます。 メッセージが送信する必要がある場合に限り、これらはコントローラーで問題ありません。 ただし、他のオプションも検討することをお勧めします。

ここでは、scope.applyをコントローラーにも使用しないようにしたいので注意しようとしました。

私はその文を削除しました。

どうもありがとうございます!

このページは役に立ちましたか?
0 / 5 - 0 評価