AngularJS的controller之间如何通信

请问AngularJScontroller之间是如何传递数据(通信)的?

现在有一个需求:页面有一个搜索框和按钮,搜索框和按钮属于一个controller。搜索框和按钮下面是一个列表,此列表是一个controller。。

在搜索框中输入内容,点击按钮,使用$http服务从后台拿到数据之后,如何把数据传递给列表的controller然后更新列表视图?

如果,我用一个大controller包裹者搜索框、按钮、列表,然后列表还是一个controller,也就是说controller之间进行了嵌套,请问这种情况下如何把外层controller通过$http服务拿到的数据传递给内层controller呢?

请分别回答两个问题,因为两种情况在项目中都会用到,谢谢!

阅读 3.4k
3 个回答

如果是第二种情况很好办啊,列表的controller不是继承大controller的么?直接取就行了。

如果是分开的controller,就有点麻烦,可以考虑通过事件发送:发送到双方共同的父作用域上;或者用一个全局的事件发送。

参考https://github.com/xufei/blog/issues/18

对于第一个问题,可以使用

$broadcast 或者 $emit

进行 controller 间通信。

第二个问题,controller 是父子关系的时候,对应的 scope 具有原型链关系。

也可以使用服务来传值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题