【发布时间】:2015-08-18 04:57:33
【问题描述】:
我有不同的视图,每个视图由不同的控制器创建。在特定时间,只有一个视图是可见的。
我想通过第一个视图控制器的功能从一个视图切换到另一个视图,然后我想调用第二个视图控制器的方法。
我的问题是我应该如何以有角度的方式调用这个方法?
我知道使用 $broadcast 和 $on 的可能性,但这有点难闻。
另一种选择是在 dom 中查找作用域并通过作用域调用方法。但这更难看。
什么是最好的解决方案?
【问题讨论】:
-
你使用的是 ngRoute 还是 UI Router...?
-
你不会只使用路由和
$location.path('/whatever');吗? -
如果我理解您的问题正确,您可以收听视图更改event from routers。或者对于一般的发布/订阅通信,您也可以create a pub/sub service。无论哪种方式,它将通过事件/回调机制,考虑到您可以获得的失去耦合,这并没有那么糟糕。即使使用像
flux这样的模式事件是通过调度程序/发射器使用。 -
路由不是问题,但是我没用路由器。它更像是在视图中有不同的选项卡,如果您选择一个选项卡,则会创建相应的控制器并呈现视图。问题是在实际/第一个视图的控制器内调用目标/第二个视图控制器的方法。从一个视图切换到另一个视图只需更改活动视图模型即可。
标签: javascript angularjs controller communication