2016-08-10 78 views
0

我有登錄彈出並重置主頁中的密碼彈出。當我點擊登錄提交,我會成功,成功後,我調用成功回調中的用戶api請求,所以我將在登錄成功後在模板中獲取用戶詳細信息,因此它將加載用戶名稱在html模板中,但不是重置密碼彈出。
在重置密碼彈出,我有登錄按鈕,成功重置密碼後。點擊登錄按鈕後,我獲得成功,控制檯中顯示成功回調中的console.log。由於我在成功調用用戶api請求,我也在console.log中獲取用戶詳細信息。但用戶的詳細信息不在html模板中加載。但重新加載頁面後,我在HTML模板中獲取用戶詳細信息。我正在獲取用戶詳細信息,無需直接在登錄彈出窗口重新加載。但不是當我重置密碼和登錄。
我有一個參數我只是路過的resetpassword模板和模板登錄路由這樣
範圍數據不能在angularjs的html模板中加載

.state('resetPassword', { 
       url: '/home/reset_password', 
       templateUrl: 'home/home.html', 
       controller: 'HomeController', 
       controllerAs: 'vm', 
       data: { 
        requireLogin: false 
       } 
      }) 
      // UI Router Login 
      .state('login', { 
       url: '/login', 
       templateUrl: 'login/uirouterlogin.html', 
       controllerAs: 'vm', 
       data: { 
        requireLogin: false 
       } 
      }) 

控制器代碼

通過模板。基於哪個按鈕被點擊。

$scope.showLogin = function(e, template) { 
     console.log(template); 
     var modalInstance = $uibModal.open({ 
      animation: true, 
      templateUrl: 'login/' + template + '.html', 
      'controllerAs': 'login', 
      controller: function($uibModalInstance, $scope, logIn) { 
       $scope.modalClose = function() { 
        $uibModalInstance.dismiss('Close'); 
       }; 
       $scope.loginUser = function(existinguser) { 
        $scope.loginLoading = true; 
        logIn.getlogIn(existinguser) 
         .then(function(success) { 
          $state.reload(); 
          $uibModalInstance.dismiss('Close'); 
          getApi(); //to get the user details. 

          cartReload(); 
          $scope.loginLoading = false; 
          console.log(success.data); 
          $login.getLoginRedirect(); 
          $authentication.setAuthKey("key"); 
          $scope.loginupError = false; 
         }, function(error) { 
          $scope.loginLoading = false; 
          console.log("Login Failed"); 
          $scope.loginError = true; 
          if (error.data) { 
           $scope.loginErrorMsg = error.data.message; 
          } else { 
           $scope.loginErrorMsg = "Error connection, Please try again"; 
          } 
          $timeout(function() { 
           $scope.loginError = false; 
          }, 4000); 
         }) 
       }; 

*重設密碼彈出窗口將出現在頁面加載 得到那個彈出我這樣做這樣*

$rootScope.$on('$stateChangeSuccess', 
     function(event, toState, toParams, fromState, fromParams) { 
      if (toState.name === 'resetPassword') { 
       $scope.showLogin('$event', 'resetpassword'); 
      } 
      $scope.home_state = toState.name; 
     } 
    ) 

HTML

<li ng-if="!user"><a ng-click="showLogin($event,'login')">LOGIN</a></li> 
<li ng-if="user">user.name</li> 

回答

-1

您沒有分配成功.data到$ scope。我覺得你的代碼應該是這樣的 - 控制器:

$scope.UserData = success.data; 

,並從該視圖/ HTML:

<li ng-if="!UserData.user"><a ng-click="showLogin($event,'login')">LOGIN</a></li> 
<li ng-if="UserData.user">{{UserData.user.name}}</li> 
+0

是不是問題,我分配成功的數據,我得到了用戶的詳細信息,直接登錄彈出主頁,但不是在重置密碼 - >登錄成功後,我使用相同的功能。沒有不同功能 – codelearner

+0

好的,然後定義一個空的用戶模型。成功登錄後,將用戶數據推入該模型並將其綁定到視圖,就這些了。幾乎所有優秀的開發人員都採用這種方法。 –

相關問題