2015-10-15 58 views
0

我正在構建一個Angular應用程序,並且我有用戶將看到的主頁,我想在頁面的右側顯示一個按鈕:Login。如果用戶還沒有登錄,我想要這個確切的按鈕有一個「帳戶設置」和「註銷」列表,如果用戶已經登錄。Angular - 爲當前用戶存儲登錄信息

我在我的應用程序中使用路由,所以當用戶登陸主頁,我不加載任何控制器(還)。我正在根據應用程序配置中的$ state加載控制器來爲每個視圖加載控制器。

我在哪裏存儲用戶的登錄狀態,以便更改按鈕來說登錄或註銷?我需要爲主頁製作一個控制器嗎?我迷失在這裏,任何幫助將不勝感激。

回答

0

你要使用ng-show/ng-hide和ng-click。所以,你要告訴按鈕,如果用戶沒有登錄

這看起來像:

<button ng-hide="isLoggedIn()" ng-click"login()">Login</a></button> 
<button ng-show="isLoggedIn()" ng-click"showSettings()">Account Settings</a></button> 
<button ng-show="isLoggedIn()" ng-click"logout()">Logout</a></button> 

控制器看起來像

$scope.isLoggedIn = Auth.isLoggedIn; // code to check if user is logged in 

當用戶登錄,他們會得到一個cookie存儲。所以你想找出一種方法來檢查cookie是否在那裏。上面的'Auth'是一個使用函數isLoggedIn檢查用戶cookie是否存在的工廠。

如果你搜索這個,網上有很多例子。我使用Angular Full Stack(yeoman)進行授權,但是有更簡單的方法不包含後端。

+0

嗨,感謝您的回答。所以每次用戶刷新頁面時,我都需要檢查他是否已登錄? –

+0

你有常用的導航鏈接 - 所以如果用戶沒有登錄會有登錄,首頁鏈接。然後,一旦登錄,您將看到註銷,配置文件,設置......它幾乎是瞬間發生的,因爲在初次加載應用程序時,所有JS代碼都會下載一次。這裏是一個回購 - 所以你可以看到一個生產樣式檢出組件/導航和相應的控制器的用例https://github.com/jakblak/MEAN-Projects/tree/master/AuthStarter – venturz909