angular broastcast事件控制器未就绪



我有一个简单的应用程序,里面有一个搜索框和一个结果列表。搜索框有自己的控制器SearchCtrl,结果列表有另一个控制器DocListCtrl。当用户提交时,SearchCtrl会发出一个事件,DocListCtrl会侦听并更新结果。如果用户输入查询并提交,它会正常工作。但是,我的问题是,当用户复制/粘贴诸如"/app/search?q=foo"之类的URL时,搜索事件会在DocListCtrl准备好之前广播,因此结果不会更新。

因此,一般来说,一个控制器是否有方法声明对另一个控制器的依赖?我是否应该让SearchCtrl将数据保存在DocListCtrl最终加载时可以查看的地方?

正如您已经发现的,应用程序的架构不应该让控制器实例化的顺序变得重要。更好的方法是使用一个服务来管理搜索结果,该服务可以注入到两个控制器中。

示例服务:https://stackoverflow.com/a/15390245/215945

最新更新