簡體   English   中英

登錄angularjs后顯示消息

[英]Show a message after login in angularjs

我在angularjs中有一個登錄功能:

$scope.login = function() {
    $http.post('/users/login', $scope.user).then(function(result) {
        if (result.data.userid) {
            $scope.isAuthenticated = true;
            $cookies.put('userid', result.data.userid);
            $rootScope.userid = result.data.userid;
            $scope.message = result.data.msg;
            //$window.location = '/';
        } else {
            $scope.isAuthenticated = false;
            $scope.message = result.data.msg;
        }
    });
  }

登錄后,我想通過$ rootScope.userid向html顯示userid並刷新一條消息$ scope.message。 如果我想顯示userid,我必須通過$window.location = '/'重新加載頁面,因為它不會自動更改。 但是,如果我重新加載頁面,則無法刷新該消息。 誰能建議我解決方案? 謝謝

在這種情況下,我將使用ui-router並安排如下的路由和控制器范圍:

  • appController(這是所有其他狀態的父狀態)
    • loginController(子狀態)
    • indexController(子狀態)
    • anyOtherControllers(子狀態)

在登錄控制器中

  1. 成功登錄后,我將使用$ emil引發一個事件。 此事件將在appController中使用$ on處理。 然后,appController將顯示登錄消息。
  2. 登錄控制器將使用$ state.go()將路線更改為所需的視圖,例如$ state.go('index')。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM