Javascript 如何将变量值从一个控制器传递到另一个控制器?

Javascript 如何将变量值从一个控制器传递到另一个控制器?,javascript,angularjs,Javascript,Angularjs,我有两个不同的控制器,我试图传递变量值来执行一些操作,我使用了$broadcastangularJS事件,但它不起作用。是否有其他解决方案来完成此任务 我知道关于控制器之间的变量已经有问题了,但我想知道还有什么其他可能的解决方案 ctrl1.js $scope.viewAssessmentFrmCycle = function(assessmentId) { $scope.$broadcast('viewAssessment',assessmentId); } ctrl2.

我有两个不同的控制器,我试图传递变量值来执行一些操作,我使用了
$broadcast
angularJS事件,但它不起作用。是否有其他解决方案来完成此任务

我知道关于控制器之间的变量已经有问题了,但我想知道还有什么其他可能的解决方案

ctrl1.js

$scope.viewAssessmentFrmCycle = function(assessmentId) {
      $scope.$broadcast('viewAssessment',assessmentId);
    }
ctrl2.js

 $scope.$on('viewAssessment',function(s,assessmentId){
                      console.log(assessmentId);
                      $location.path('/rcsa/editAssessmentFromCycle/'+assessmentId+);

                    });
使用服务

angular.module('myApp', [])
    .service('ShareThis', function () {
        var value = 'myValue';

        return {
            getValue: function () {
                return value;
            },
            setValue: function(newValue) {
                value = newValue;
            }
        };
    });
然后,您可以通过设置或获取

例如:

使用服务

angular.module('myApp', [])
    .service('ShareThis', function () {
        var value = 'myValue';

        return {
            getValue: function () {
                return value;
            },
            setValue: function(newValue) {
                value = newValue;
            }
        };
    });
然后,您可以通过设置或获取

例如:


您可以创建一个工厂来保存数据

工厂:

angular.module('myModule').factory('commonData', function(){
  var commonValue = {};
  return {
    getData : function(){ return commonValue },
    setData : function(newData) { commonValue = newData }
  }
});

然后将此工厂注入控制器,并使用set和get函数来处理数据。

您可以创建一个工厂来保存数据

工厂:

angular.module('myModule').factory('commonData', function(){
  var commonValue = {};
  return {
    getData : function(){ return commonValue },
    setData : function(newData) { commonValue = newData }
  }
});

然后将此工厂注入控制器,并使用set和get函数处理数据。

使用工厂保存数据

var app = angular.module('test', []);

// create a mediator factory which will persist the data
app.factory("MediatorFactory", function() {
    return {
        obj: {
            value: ""
        }
    };
});

app.controller("FirstCtrl", ["MediatorFactory", function(mediator) {
    this.variable1 = mediator.obj;
}]);

app.controller("SecondCtrl", ["MediatorFactory", function(mediator) {
    this.variable2 = mediator.obj; // this.variable2 = this.variable1 in the controller1
}]);

使用工厂保存数据

var app = angular.module('test', []);

// create a mediator factory which will persist the data
app.factory("MediatorFactory", function() {
    return {
        obj: {
            value: ""
        }
    };
});

app.controller("FirstCtrl", ["MediatorFactory", function(mediator) {
    this.variable1 = mediator.obj;
}]);

app.controller("SecondCtrl", ["MediatorFactory", function(mediator) {
    this.variable2 = mediator.obj; // this.variable2 = this.variable1 in the controller1
}]);

我编辑了我的问题我编辑了我的问题