7

曖昧なタイトルに申し訳ありません。AngularJSの哲学 - コントローラはサービスの「窓」として

私はそれについて多くの「角度」になろうと、私のAngularJSコードの一部を再構築してきた、と私はかなり飛び出るこのパターンを気づいた:基本的に

app.service("someService", function(...) { 
    ... 
} 

app.controller("ControllerForThisSection", function($scope, someService) { 
    $scope.someService = someService 
} 

を、コントローラがありますほとんどがスコープにサービスへの参照を与えるので、ビューは

<div ng-if="someService.status"> 
    .... 
</div> 

のように、それを使用することができますだから私は特定の共有データやサービスに依存して作るのに役立つより多くの何もしない、いくつかのコントローラよりも多くを持っていますスコープを通じて利用可能なサービスへの参照。

このデザインを使用することに不利な点はありますか?私は思考を改善することはできますか?これはそれを「角度のある」方法ですか?

アドバイスありがとうございます!

+0

コントローラというよりはディレクティブを使用していますが、かなり似たような状況です。私はいつもこのパターンに行くことにかなり自信を持っていましたが、これは実際には非常に興味深い質問です –

+0

このserivceを提供するすべてのコントローラを包括するメインコントローラについて考えてみましょうか? –

答えて

4

これは「角度的な方法」です。共有データはサービスに配置し、必要な場所に注入する必要があります。

私は、主にモデル(通常はサービスに格納されている)とビューの観点から私の角型アプリケーションを考えています。コントローラは、特定のUIビューに必要なモデルの一部を投影/抽出するための接着剤に過ぎません。

また、モデルオブジェクト(quote Josh)ではなく、APIを返すサービスも考えられます。

関連する問題