Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 以角度从两个控制器传递数据_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 以角度从两个控制器传递数据

Angularjs 以角度从两个控制器传递数据,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我想将数据从一个控制器传递到另一个控制器。 以下是我的职能: app.controller('formVacationController', function($scope, $state, $rootScope) { // we will store all of our form data in this object $scope.formData = {}; $rootScope.globalAnswers = ""; var point;

我想将数据从一个控制器传递到另一个控制器。
以下是我的职能:

   app.controller('formVacationController', function($scope, $state, $rootScope) {

    // we will store all of our form data in this object
    $scope.formData = {};

    $rootScope.globalAnswers = "";
    var point;

    checkAnswer = function(){

        if($scope.formData.mashhad === "mashhad"){
            point =  50;

        }
        else if($scope.formData.kish === "kish"){
            point =  100;

        }
        else if($scope.formData.shomal === "shomal"){
            point =  70;

        } else if($scope.formData.shiraz === "shiraz"){
            point =  60;

        }

    }

    $scope.nextStep = function(){
        checkAnswer();
        $rootScope.globalAnswers = point;

        $state.go('form.job');
    }

}); 
另一方面:

  var point;
    point = $rootScope.globalAnswers;  
我无法从第一个控制器获取值


我遗漏了什么吗?

你可以使用这样的工厂:

app.factory('Point', function () {
    var data = {
        point: 0
    };

    return {
        getPoint: function () {
            return data.point;
        },
        setPoint: function (point) {
            data.point = point;
        }
    };
});

然后在您的控制器中调用setPoint(point)以将点和getPoint()存储在另一个控制器中以检索它。

您可以发布控制器吗?
rootScope
不是将数据传递给另一个控制器的好方法。您应该使用
服务
工厂
@dhavalcengg updated您能告诉我如何使用吗@alifirat@sani嗨,看看我对一个类似问题的回答。对于存储,我应该使用类似的东西:Point.settpoint(点);是的,您必须在控制器定义中包含“点”工厂,然后调用Point.setPoint(点);和Point.getPoint();