我想根据用户是否经过身份验证在我的 HTML 中显示/隐藏元素。我的 HTML 是静态的,GET /check
当有一个名为session
. 以下作品:
HTML:
<div class="ng-cloak" ng-show="loggedIn()">Foo</div>
<div class="ng-cloak" ng-hide="loggedIn()">Bar</div>
咖啡脚本:
angular.module('app', ['ngCookies']).run ($cookies, $http, $rootScope) ->
if $cookies.session
$http.get('/check').success (data) -> $rootScope.user = data
$rootScope.loggedIn = ->
if $rootScope.user then true else false
问题是,当用户通过身份验证时(user
不为空,因此loggedIn()
为真),仍有一小段时间 Bar 仍然显示,因为脚本仍在等待GET /check
返回(因此user
仍然为空,因此loggedIn()
为假)。我该如何解决?
更新:小提琴: http: //jsfiddle.net/dexrN/1/(删除$cookies
并替换$http
为$timeout
)