我需要一个isLoggedIn()函数,控制器和模板都可以访问(模板需要它才能执行类似ng-show =“isLoggedIn()”的操作)。最好的方法是什么?
如果答案是服务,那么是否可以从模板中访问服务,或者我的每个控制器是否需要为模板创建一个包装函数来查看它(在$ scope中)?
答案 0 :(得分:5)
我的身体标签中通常有一个'MainCtrl',并将全局内容放入其中。
<body ng-controller="MainCtrl">
...
</body>
function MainCtrl($scope, authService) {
$scope.isLoggedIn = function() {
return authService.isLoggedIn();
}
}
然后每个其他范围都将继承isLoggedIn函数。
您也可以将isLoggedIn放在$ rootScope上,但我喜欢这样。