我试图在angularjs中从一个控制器发送到另一个控制器,但不起作用

我试图在angularjs中从一个控制器发送到另一个控制器,但不起作用,angularjs,Angularjs,服务不需要返回任何内容。您必须分配此变量中的所有内容。因为服务将在默认情况下创建实例并将其用作基础对象 /*service */ app.service('sharedProperties', function () { var property = 'First'; return { getProperty: function () { return property; },

服务不需要返回任何内容。您必须分配此变量中的所有内容。因为服务将在默认情况下创建实例并将其用作基础对象

/*service */
 app.service('sharedProperties', function () {
        var property = 'First';

        return {
            getProperty: function () {
                return property;
            },
            setProperty: function(value) {
                property = value;
            }
        };
    });


/*first contoller */
app.controller('loginCtrl',function($scope,$location,$http,$window,sharedProperties){
    $scope.submit =function(){
        var username=$scope.username;
        var pass=$scope.password;
      sharedProperties.setProperty(username);          


 $location.path('/userdashboard');
 $window.location.reload();
            });
        }  
    });

/*second controller*/
app.controller('empController', function($route,$scope,$http,$routeParams,sharedProperties){

    $scope.getEmployees = function(){

        alert( sharedProperties.getProperty());

     };    
   };
然后在控制器中

app.service('sharedProperties', function () {
     this.property = 'First';
});
您是否一直在寻找使用
factory

sharedProperties.property = $scope.username;
然后在控制器中使用它

app.factory('sharedProperties', function () {
       var factory = {};
       factory.property = 'Hello';  

       factory.setProperty = function (value) {
            factory.property = value;
       };    
       return factory;
});
编辑


试试这个,它会对你有用的

sharedProperties.setProperty($scope.username);    // Setter
$scope.var = sharedProperties.property;  //getter

var-app=angular.module('myApp',[]);
app.controller('myCtrl',函数($scope,$http){
函数sendData($scope){
var arrayData=[1,2,3];
$scope.$emit('someEvent',arrayData);
}
});
app.controller('yourCtrl',函数($scope,$http){
$scope.$on('someEvent',函数(事件,数据){
控制台日志(数据);
}); 
});

您可以将成员分配给$rootScope,它将为您的应用程序全局存储数据。只需向每个控制器注入$rootScope

例如

        <div ng-app="myApp" ng-controller="myCtrl"> 

            <button ng-click="sendData();"></button>

        </div>


        <script>
            var app = angular.module('myApp', []);
            app.controller('myCtrl', function($scope, $http) {
                function sendData($scope) {
                    var arrayData = [1,2,3];
                    $scope.$emit('someEvent', arrayData);
                }

            });
            app.controller('yourCtrl', function($scope, $http) {
                $scope.$on('someEvent', function(event, data) {
                    console.log(data); 
                }); 
            });
        </script>
这将使任何注入和使用$rootScope的控制器都可以使用“username”

 /*first controller */        
app.controller('loginCtrl',function($scope,$rootScope,$location,$http,$window,sharedProperties){
            $scope.submit =function(){
                var username=$scope.username;
                var pass=$scope.password;
                $rootScope.username = username;          


                $location.path('/userdashboard');
                $window.location.reload();
            });
        }  
    });

我已经设置了sharedProperties.setProperty($scope.username);在一个控制器中,当从另一个控制器显示属性时,它显示为第一个属性,未修改为给定用户名…我在一个控制器中设置值,在同一个控制器中显示正确的值,但当我在第二个控制器中获得值并显示时,它显示“未定义”,请帮助解决它。。。。
/*second controller*/
app.controller('empController', function($route,$scope,$rootScope,$http,$routeParams,sharedProperties){

    $scope.getEmployees = function(){
        alert($rootScope.username);
     };    
   };