首页 > AngularJS的controller之间如何通信

AngularJS的controller之间如何通信

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

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

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

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

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


也可以使用服务来传值。


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

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

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


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

$broadcast 或者 $emit

进行 controller 间通信。

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

【热门文章】
【热门文章】