2015-01-14 145 views
-1

我正在使用angularjs的應用程序。在這我有一個登錄頁面和主頁。
整頁被分成兩個部分容器各自與分別headerCtrlloginCtrl。 標題對於兩個部分都是相同的,只有在登錄後休息部分纔會更改。在另一個控制器中訪問控制器的數據

這是loginCtrl。

angular.module('app').controller('LoginCtrl', ['$scope', 'LoginService', 
    function($scope, LoginService) { 
     $scope.title = "Login"; 

     $scope.login = function() { 
      var user = { 
       username: $scope.username, 
       password: $scope.password 
      }; 
      LoginService(user); 
     }; 

    } 
]); 

這是loginService。

angular.module('app') 
.factory('LoginService', function($http, $location, $rootScope) { 
    return function(user) { 
     $http.post('/login',{ 
       username: user.username, 
       password: user.password 
      }).then(function(response) { 
      if (response.data.success) { 
       console.log(response.data); 
       $rootScope.user = response.data.user; 
       $location.url('/'); 
      } else { 
       console.log(response.data.errorMessage); 
       $location.url('/'); 
      } 
     }); 
    }; 
}); 

這是header.html中

<div ng-controller="headerCtrl" class="container-fulid"> 
    <div class="row custom-row1"> 
     <div><span class="title_top pull-right">{{ user }}</span></div> 
    </div> 
</div> 

我們怎麼能寫headerCtrl和登錄控制器和服務需要什麼樣的變化,這樣我可以在header.html中訪問用戶的詳細信息(用戶名)文件。

+0

如果頭控制器存在於登錄控制器內,您可以直接訪問 – Antguider

+0

如何提供更多詳細信息。是否可以在另一個控制器中定義一個控制器。 – ashishkumar148

+0

是的!您可以在另一個控制器內使用一個控制器 –

回答

0

它可能會幫助你!

你的HTML代碼樣本

<div ng-controller="loginCtrl" class="container-fulid"> 
    <div class="row custom-row1"> 
     <div><span class="title_top pull-right">{{ title }}</span></div> 
    </div> 
</div> 

你AngularJs代碼樣本

var baseURL = "http://localhost:56110/"; 
var app = angular.module('loginApp', []); 

app.service('loginService', function ($http) { 
    this.login = function (user) { 
     return $http.post('/login', user) 
      .success(function (data, status, headers, config) {    
      }) 
      .error(function (data, status, headers, config) {    
      }); 
      } 
     }); 
    }; 
}); 

app.controller('loginCtrl', function ($scope, loginService) { 

    $scope.title = "Login"; 
    $scope.uid = 123; 
    $scope.pwd = 123; 

    $scope.login = function() { 
     var pwd = { 
      username: $scope.uid, 
      password: $scope.pwd 
     }; 

     loginService.login(pwd).then(function (response) {    
      if (response.data.success) { 
       console.log(response.data); 
       $rootScope.user = response.data.user; 
       $location.url('/'); 
      } 
      else { 
       console.log(response.data.errorMessage); 
       $location.url('/'); 
      } 
     }); 
    }; 
}); 
+0

好像登錄進來的HTML標題。但我希望那個uid來到那個地方。 – ashishkumar148

+0

你可以把uid放在標題的地方。 –

0

U可以烏爾lgon服務完成時的$ rootscope使用廣播從登錄控制器,並聽取了使用事件在headercontroller.the事件參數,您可以作爲用戶的詳細信息傳遞。

相關問題