现在有两个controller A B(同级)
A中有一个方法query() (用到了大量的该$scope上的值)
问 如何在B中调用A中的query()?
即如何保留一个函数的运行环境
写一个服务 然后服务写一个方法映射你这个A中的query方法 然后B中调用服务的方法 不知道这样行不行?
参考文章:
Controller间的数据共享?最佳实践:使用Service
使用AngularJS构建应用时遇到的问题及解决方案(版本为1.3.9)
目前是使用了下面的方法:
1、在B中添加 $rootScope.$broadcast('xxx')
2、在A中添加 $scope.$on('xxx',()=>{query()})
如果要求执行环境是A那就只有一个办法就是emit事件, 其他都不行的
angular中控制器的通信方式有三种,1.基于事件的方式 2.基于服务注入的方式 3.利用作用域继承 具体看你两个controller之间的关系