Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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 如何在AngularJS中绑定两个各自的$scope中的数据?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在AngularJS中绑定两个各自的$scope中的数据?

Javascript 如何在AngularJS中绑定两个各自的$scope中的数据?,javascript,angularjs,Javascript,Angularjs,我试图将一些数据从$scope 1带到$scope 2。 在下面,我试图将$scope 1中的“project\u data.title”或“$$scope.project\u data.project\u title”传递到$scope 2中的$scope.test [$A] $scope.updateData = function(project_id){ $http.post("../crud/projects_update.php",{ project_id :

我试图将一些数据从$scope 1带到$scope 2。 在下面,我试图将$scope 1中的“project\u data.title”或“$$scope.project\u data.project\u title”传递到$scope 2中的$scope.test

[$A]

$scope.updateData = function(project_id){
    $http.post("../crud/projects_update.php",{
        project_id : $scope.project_data.project_id,    
        project_title : $scope.project_data.project_title // this should be passed to $scope B.
    })
[$scope B]

$http.get('../crud/customers_read.php',{

}).then(function(response){
    $scope.customer = [];
    $scope.customers = response.data;
    $scope.test = { name: $scope.project_data.project_title }; // This should come from $scope A.
});
我认为它们是普遍的,但似乎不是。您通常如何解决这类问题:为不同的$scope绑定数据


提前谢谢你

默认情况下,角度中的作用域可以向上引用父作用域,除非将它们隔离。似乎您的两个作用域(如果是同级)在默认情况下不继承彼此的作用域

例如:

范围A->范围B
:范围B可以引用范围A变量

范围C范围B
:范围B和范围C可以引用范围A变量,但范围B不能引用范围C变量,反之亦然

您可以使用
$rootScope
,但随着应用程序的扩展,这将使您陷入混乱的作用域状态处理

我建议您将数据放在服务中

因此范围A将把数据发布到
CommonDataSvc
,然后范围B可以在那里引用数据

这将使你的州更有条理


另一个选项是实现Redux。

默认情况下,角度范围可以向上引用父范围,除非将它们隔离。似乎您的两个作用域(如果是同级)在默认情况下不继承彼此的作用域

例如:

范围A->范围B
:范围B可以引用范围A变量

范围C范围B
:范围B和范围C可以引用范围A变量,但范围B不能引用范围C变量,反之亦然

您可以使用
$rootScope
,但随着应用程序的扩展,这将使您陷入混乱的作用域状态处理

我建议您将数据放在服务中

因此范围A将把数据发布到
CommonDataSvc
,然后范围B可以在那里引用数据

这将使你的州更有条理


另一个选项是实现Redux。

您应该真正创建一个
$http
服务,并且只将它注入到使用它的控制器中。从angular 1.2开始,您应该使用语法。Angularjs团队添加了这个语法来精确地解决这些类型的问题。谢谢大家的建议。我会调查的!您应该真正创建一个
$http
服务,并且只将它注入到使用它的控制器中。从angular 1.2开始,您应该使用语法。Angularjs团队添加了这个语法来精确地解决这些类型的问题。谢谢大家的建议。我会调查的!非常感谢您的评论!它帮助我更好地理解。希望这对其他人也有帮助!非常感谢您的评论!它帮助我更好地理解。希望这对其他人也有帮助!