Angularjs控制器与另一个文件中的另一个控制器通信

时间:2013-08-26 23:23:00

标签: javascript angularjs ng-grid

我在文件a中有一个控制器,当它执行某些操作时,我希望它调用函数或文件b中的控制器。那可能吗?我正在使用ng-grid,所以我的理由是在文件afterSelectionChange中调用a时,我希望我的其他网格更新,我无法合并文件或使用{ {1}}函数,因为加载页面时会占用太多时间。我最终也试图解决这个问题。他们是一样的:

Ng-Grid flickers grid when updating

这只是另一种看法。如果有人能够回答哪一个会很棒!

2 个答案:

答案 0 :(得分:1)

将代码放在不同的文件中并不会影响任何内容。加载页面后,所有文件都将被加载到浏览器中,因此您只需要一种方式进行通信。

有很多方法让2个控制器进行通信,但它完全取决于您要实现的目标,这将决定处理它的最佳方法。如果控制器a和控制器b各自具有对同一模型的引用,则可以通过更新模型在它们之间进行通信。然后,模型中的更改将立即反映在两个控制器中。如果模型是分开的(请提供示例),那么服务可能是更好的通信方式。如果你正在做一些完全不同的事情,可能会有更好的方法来完成所有这些。

在任何情况下,请提供有关您正在尝试做的更具体的信息,以帮助我们找到最佳答案。

答案 1 :(得分:1)

您应该使用注入两个控制器的服务。我在http://bit.ly/ZVvj1M找到了一个简单的例子。这应该说明如何做到这一点。