如何将数据从子控制器发送到AngularJS中的父控制器?

时间:2015-10-18 19:53:11

标签: javascript angularjs json

我需要一些指导,以便在AngularJS中为我的任务采取最佳实践。

任务:

  1. 在视图中:我有一个父控制器和两个子控制器。
  2. 子控制器使用自己的$ scope和objects。
  3. 当我在视图中按save时,我需要从子控制器获取数据到父控制器,以准备一个对象将其发布到服务器。
  4. 我对这种方法的最佳解决方案感到困惑。

4 个答案:

答案 0 :(得分:6)

在控制器之间共享数据的常用方法是使用service

您还可以broadcast更新父控制器

答案 1 :(得分:2)

有很多不同的方法可以实现这一目标。

  1. 使用$ rootScope。
  2. 使用服务
  3. 使用广播并发出
  4. 在父控制器中声明一个对象,然后在子控制器中修改相同的对象。
  5. 使用$ rootScope不是一个好方法,因为关闭应用程序时会销毁$ rootScope变量。

    在需要之前,我也不会推荐使用broadCast或发射。

    服务,适用于通信黑白控制器,但您再次注入并修改方法。

    在您的场景中,我建议使用公共$ scope对象变量,该变量在父控件中声明并在子控制器中使用,因为所有方法都在子控制器中继承。

答案 2 :(得分:0)

在控制器之间共享数据有三种常用方法:

1将数据投入使用或出厂。由于它们是单例,因此注入相同服务的任何控制器都可以共享该服务中的数据

2将数据放入$rootScope

3使用$broadcast$emit在范围之间发送事件,并将共享数据作为事件参数传递

答案 3 :(得分:0)

以上答案很有用,但以下是从子作用域更新父控制器中的$scope对象的简单方法,如下所示。

在子控制器中,$scope.$parent.parentObject = updatedObject

希望有帮助!