Javascript 角度根范围更新
我有一个页面,上面有登录用户的“状态”部分,上面写着“欢迎,[姓名]”,如果他们确实在登录,则有一个“注销”链接 我试图通过在Javascript 角度根范围更新,javascript,angularjs,Javascript,Angularjs,我有一个页面,上面有登录用户的“状态”部分,上面写着“欢迎,[姓名]”,如果他们确实在登录,则有一个“注销”链接 我试图通过在LoginController的$rootScope上设置值来登录,并希望更改“status”部分,但什么也没发生。我安装了chrome扩展,我看到$rootScope.loggedIn确实设置为true angular.module('pipelineChromeApp') .controller('LoginController', [ '$rootScope', '
LoginController
的$rootScope上设置值来登录,并希望更改“status”部分,但什么也没发生。我安装了chrome扩展,我看到$rootScope.loggedIn
确实设置为true
angular.module('pipelineChromeApp')
.controller('LoginController', [
'$rootScope',
'$scope',
'Profile',
'$location',
function ($rootScope, $scope, Profile, $location) {
$scope.apiKey = '';
$scope.error = '';
$scope.login = function(){
$scope.error = '';
var login = Profile.getProfile($scope.apiKey)
login.then(function(resp){
$rootScope.loggedIn = true;
$rootScope.name = resp.data.first_name;
$rootScope.apiKey = resp.data.api_key;
$rootScope.avatar = resp.data.avatar_thumb_url;
// Sets data in localstorage
Profile.login(resp.data);
$location.path( "/actions" );
}, function(error) {
$scope.error = error.data.error;
});
};
}]);
angular.module('pipelineChromeApp')
.controller('StatusController', [
'$rootScope',
'Profile',
'$scope',
'localStorageService',
function ($rootScope, Profile, $scope, localStorageService) {
$scope.loggedIn = $rootScope.loggedIn;
$scope.name = $rootScope.name;
$scope.logout = function() {
Profile.logout()
$location.path("/start");
};
}]);
以及模板:
<div class="status" ng-controller="StatusController">
<div ng-if="loggedIn">
Welcome, <span ng-bind="name"></span>!
<a href="#" ng-click="logout()">Logout</a>
</div>
</div>
欢迎
看起来我必须在$rootScope
中使用$watch来更新本地$scope