我正在尝试将$ scope 1中的一些数据带到$ scope 2。 在下面,我试图将$ scope 1中的“project_data.title”或“$$ scope.project_data.project_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.
})
[$范围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绑定数据?
提前谢谢!
答案 0 :(得分:6)
Angular中的作用域默认情况下可以将向上梯形图引用到父作用域,除非您将它们隔离。您的两个范围(如果是兄弟姐妹)似乎不会默认继承彼此的范围。
例如:
scope A -> scope B
:范围B可以引用范围A变量
scope C <- scope A -> scope B
:范围B和范围C可以引用范围A变量,但范围B不能引用范围C变量,反之亦然
你可以使用$rootScope
,但是当你的应用程序扩展时,这将使你陷入凌乱的范围汤状态处理。
我建议你改为将数据放在服务中。
因此,范围A会将数据发布到CommonDataSvc
,然后范围B可以在那里引用数据。
这将使您的州更好地组织起来。
另一种选择是实施Redux。