7

コントローラとテンプレートの両方がアクセスできるisLoggedIn()関数が必要です(テンプレートはng-show = "isLoggedIn()"のようなことをするためにそれを必要とします)。これを行うための最良の方法は何ですか?

答えがサービスの場合、テンプレート内からサービスにアクセスすることは可能ですか、それとも各コントローラーがテンプレートを表示するためのラッパー関数を作成する必要がありますか($ scope内)?

4

1 に答える 1

5

私は通常、bodyタグに「MainCtrl」を入れてグローバルなものを入れています。

<body ng-controller="MainCtrl">
  ...
</body>

function MainCtrl($scope, authService) {
  $scope.isLoggedIn = function() {
    return authService.isLoggedIn();
  }
}

その後、他のすべてのスコープはisLoggedIn関数を継承します。

isLoggedInを$rootScopeに配置することもできますが、私はこの方法が好きです。

于 2012-06-29T16:14:38.283 に答える