私はAngularJSを初めて使いました。それはかなり複雑で、私のアプローチは新しいので、少し混乱しています。AngularJS:グローバルメニュープロバイダ、サービス、またはrootScopeの正しい場所?
私は古典的なバックグラウンド(サーバー側のテンプレート言語[Yii、django、Smarty] +物事を少し動的にするjQuery)のものです。
のは、私は、メニューバー(ブートストラップナビゲーションバー、または何か他のもの)があるとしましょう - メインページの外コンテンツに住んでいる要素、このような:
<body>
<div id="menubar">
... <!-- menu content -->
</div>
<div class="container">
<div ng-view></div>
</div>
</body>
は、今私が好きなのメニューをビット動的にする、すなわちコントローラ内のいくつかのメニュー項目を追加または削除する。 サーバー側のフレームワーク&テンプレートシステム、たとえばYii - BaseController
クラスの変数は$menuItems
で、menuBar
で毎回レンダリングし、すべてのコントローラはBaseController
から継承して項目を変更できます。
また、メニューバー内にあるsearchForm
を処理する関数が必要です。それはどこに住んでいますか?
このような角度には何がありますか?今のところ私はカスタムservice
を作成するか、または$rootScope
を拡張することを考えていました。
exampleアプリを見ましたか? https://github.com/IgorMinar/foodme – vittore
@vittoreありがとう、私はこれを知らなかった。私は、ng-viewと一緒にng-controllerを使うことができないことを知りませんでした:)それをいくつかの共有サービスと組み合わせることは、やってみるべきです。コメントではなく返事にして、それを答えとしてマークします。 – migajek
[角モジュールでのグローバル通信:イベントバスまたはメディエータパターン/サービス]の重複可能性(http://stackoverflow.com/questions/27356299/global-communication-in-angular-module-event-bus-or-mediator-パターンサービス) –