2013-10-23 157 views
0

我在視圖中有一個導航欄ul,如果用戶沒有登錄,則不應該顯示此信息。爲此,我使用ng-show =「session.exists()」 。當點擊退出按鈕(也是在導航欄視圖)調用:視圖不會刷新會話註銷

$scope.logout = function() { 
    var success = function() { 
    $state.transitionTo('login'); 
    }; 
    console.log($scope.session.exists()); 
    Auth.logout().then(success); 
    console.log($scope.session.exists()); 
}; 

從我的日誌報表,我可以看到,看到會話被銷燬確定,但EL元件我想隱藏的仍然是可見。如果我刷新頁面,元素將隱藏。我在這裏錯過了一招嗎?我是新來的角,並繼承了一個項目,所以任何建議非常感謝!

Ç

回答

0

可能是你的功能不被上ngShow當你破壞用戶會話解僱。

我建議你使用一個變量來控制它,並在你的登出功能上設置它。

在你的控制器:

$scope.loggedIn = true; 
$scope.logout = function() { 
    $scope.loggedIn = false; 
} 

而在你的看法:

<div data-ng-show="loggedIn">Show Me!</div> 
0

我認爲你要更新的範圍變量負責您顯示來自一個異步函數調用可能是你的導航欄的網址在http呼叫的成功方面。 因此請嘗試添加$ scope。$ digest();只是在更新範圍變量