Angularjs の FEQ を調べているときに、以下の記事を見ました。
$rootScope は存在しますが、悪用される可能性があります
Angular のスコープは階層を形成し、プロトタイプとしてツリーの最上部にあるルート スコープから継承します。ほとんどのビューには独自のコントローラー、つまりスコープがあるため、通常、これは無視できます。
場合によっては、アプリ全体に対してグローバルにしたいデータの断片があります。
$rootScope
これらについては、他のスコープと同様に値を挿入して設定できます。ng-show
スコープはルート スコープから継承するため、これらの値は、 local の値と同様に、ディレクティブに関連付けられた式で使用できます$scope
。もちろん、グローバルな状態は最悪であり
$rootScope
、(できれば) どの言語でもグローバル変数を使用するように、慎重に使用する必要があります。特に、コードには使用せず、データのみに使用してください。に関数を配置したい場合は$rootScope
、ほとんどの場合、必要な場所に挿入でき、より簡単にテストできるサービスに配置することをお勧めします。逆に、データのビットを保存して返すことだけを目的とするサービスを作成しないでください。
だから私の疑問は、なぜ $rootScope がグローバル関数としての関数に推奨されないのですか? パフォーマンスの問題はありますか?