在AngularJS中的另一个控制器中更新变量

Jam*_*ter 5 javascript jquery twitter-bootstrap angularjs

好的,所以我正在使用angular.js构建一个web应用程序.我已经开始实现用户身份验证.

我用它自己的控制器做了这个:

app.controller("userControl", ["$http", "share", function($http, share){
this.login = {};
var user = this;
this.doLogin = function(){
    this.login.fn = "login";
    $http.post('classes/main.php', user.login).success(function(data){
        console.log(data.Error);
        if(data.Error == undefined){
            alert("Success");
            share.user = data;
            window.location.href = "#memberHome";
        }
    }); 
}
}]);
Run Code Online (Sandbox Code Playgroud)

我有一个成员的页面,它有自己的控制器:

HTML:

<div id="memberHome" data-role="page" ng-controller="member-Ctrl as member">
    <nav class="navbar navbar-inverse">
        <div class="container-fluid">
            <div class="navbar-header">
                <p class="navbar-brand" href="#">Calendar</p>
            </div>
            <ul class="nav navbar-nav navbar-left">
                <li><a href="#">Overview</a></li>
                <li><a href="#">Friends</a></li>
            </ul>

            <ul class="nav navbar-nav navbar-right">
                <li><a href="#"><span class="glyphicon glyphicon-user"></span> Logged in as: {{member.user.forename + " " + member.user.surname}}</a></li>
                <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Log Out</a></li>
            </ul>
        </div>  
    </nav>
    <div data-role="content">
        <calendar selected="day"></calendar>

    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

app.controller("member-Ctrl", ["share", function(share){
this.user=share.user;

}]);
Run Code Online (Sandbox Code Playgroud)

我需要用户控制器告诉成员控制器新用户的详细信息.

我用Google搜索并查看了类似问题的答案,这些问题让我想到了这一点

我创建了一个服务,如视频中所示:

app.service("share", function(){
    this.user = {}

});
Run Code Online (Sandbox Code Playgroud)

现在每当我登录并重定向到memberHome页面时,它就会告诉我 Logged in as:

任何人都可以看出为什么会这样吗?

我是Angular的新手,在我需要的时候,我正在学习一切.

我应该说我正在使用jQuery Mobile(用于多页文档)和Bootstrap 3

Jon*_*eet 14

您可以使用服务在控制器之间共享信息或使用$ rootScope

var app = angular.module('mymodule',[]);
app.controller('Controller1', ['$scope','$rootScope',
  function($scope, $rootScope) {
    $rootScope.showImages = true;
}]);

app.controller('Controller2', ['$scope','$rootScope',
  function($scope, $rootScope) {
    $rootScope.showImages = false;
}]);
Run Code Online (Sandbox Code Playgroud)

在模板中:

<div ng-controller="Controller1">
    <div class="images" ng-show="$root.showImages"></div>
</div>
Run Code Online (Sandbox Code Playgroud)