AngularJsを使用してアプリケーションを構築しているときに、次のことが良い習慣かどうかを自問しました。
私は「AppController」を持っていて、他のすべてのコントローラーはその子です。AppControllerには次のようなものがあります。
$scope.layout = { sidebar: false, searchbar: true};
これで、子コントローラーは次の値を変更できるようになります。
$rootScope.sidebar = true;
この場合、私の子モジュールは完全にルートコントローラーに依存しており、この子コントローラーを他のアプリケーション内で動作させたい場合は、他のアプリの親コントローラーが常に$scope.layoutオブジェクトを持っていることを確認する必要があります。これは良い習慣ですか?親コントローラーと子コントローラーの両方で使用されるレイアウトモジュールを構築する方がよいでしょうか?以下のコードのように:
angular.module("app.ui", [])
.factory("Layout", [function(){
var _sidebar = false;
var searchbar = true;
var sidebar = function(flag){
if(flag !== undefined) _sidebar = flag;
return _sidebar;
}
var searchbar = function(flag){
if(flag !== undefined) _searchbar = flag;
return _searchbar;
}
return {
sidebar : sidebar,
searchbar : searchbar
}
}])