Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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
Javascript 将$scope变量值传递给工厂变量/函数_Javascript_Angularjs - Fatal编程技术网

Javascript 将$scope变量值传递给工厂变量/函数

Javascript 将$scope变量值传递给工厂变量/函数,javascript,angularjs,Javascript,Angularjs,我需要将$scope变量的值从我的角度控制器传递到我的角度工厂,该值将进一步用于其他计算 控制器: angular.module('myApp').controller('MyController',['$scope', function($scope) { $scope.selectedValue = function(value) { $scope.valueToSend = value + 1000; } }]); 事实: angular.module('

我需要将$scope变量的值从我的角度控制器传递到我的角度工厂,该值将进一步用于其他计算

控制器:

angular.module('myApp').controller('MyController',['$scope', function($scope)
{
    $scope.selectedValue = function(value)
   {
      $scope.valueToSend = value + 1000;
   }
}]);
事实:

angular.module('myApp').factory("Factory", ["$q","$localStorage", function(q, $localStorage)
{
   var functionToGetValue = function()
   {
    return value;
   }
}
var x = { .... }
return x;
}]);
我的控制器中的“值”只是一个选中的单选按钮。 在my factory中,变量x具有调用my factory函数的其他函数
functionToGetValue


是否有某种方法可以将$scope.valueToSend传递给我的工厂,以便我可以在那里进一步使用它本身???

在您的工厂中有一个setter/getter方法,您可以使用该方法设置新值,并且当您想要重用它时,使用相同的方法获取它,如下所示:

angular.module('myApp').factory("Factory", ["$q","$localStorage", 

function(q, $localStorage)
{ 
   this.value = "";
   return {
    inputValue : function (value) {
       if(value)
         this.value = value;
       else
         return value;
    }   
  }
}
var x = { .... }
return x;
}]);
现在,从你的控制器

angular.module('myApp').controller('MyController',['$scope', 'Factory'

function($scope, factory)
{
    $scope.selectedValue = function(value)
     {
      $scope.valueToSend = value + 1000;
       factory.inputValue($scope.valueToSend); // this will set the new value in the factory.
     }

console.log(factory.inputValue()) // this will get the value from the factory.

}]);

在您的工厂中有一个setter/getter方法,您可以使用该方法设置新值,当您想要重用它时,请使用相同的方法来获取它,如下所示:

angular.module('myApp').factory("Factory", ["$q","$localStorage", 

function(q, $localStorage)
{ 
   this.value = "";
   return {
    inputValue : function (value) {
       if(value)
         this.value = value;
       else
         return value;
    }   
  }
}
var x = { .... }
return x;
}]);
现在,从你的控制器

angular.module('myApp').controller('MyController',['$scope', 'Factory'

function($scope, factory)
{
    $scope.selectedValue = function(value)
     {
      $scope.valueToSend = value + 1000;
       factory.inputValue($scope.valueToSend); // this will set the new value in the factory.
     }

console.log(factory.inputValue()) // this will get the value from the factory.

}]);
按照上述代码创建工厂,并在控制器中使用该工厂。使用
Factory.setValue(valueToPass)
Factory.functionToGetValue()
返回传递的值


按照上述代码创建工厂,并在控制器中使用该工厂。使用
Factory.setValue(valueToPass)
Factory.functionToGetValue()
返回传递的值。

将值传递给Factory然后将其更新返回控制器有什么问题?我不确定如何将该值传递给工厂,我想避免使用$rootScope。将值传递给工厂,然后将其更新返回给控制器有什么不对?我不知道如何将该值传递给工厂,我想避免使用$rootScope。