扫码关注官方订阅号
现在有两个controller A B(同级)A中有一个方法query() (用到了大量的该$scope上的值)问 如何在B中调用A中的query()?
即如何保留一个函数的运行环境
写一个服务 然后服务写一个方法映射你这个A中的query方法 然后B中调用服务的方法 不知道这样行不行?
angular中控制器的通信方式有三种,1.基于事件的方式 2.基于服务注入的方式 3.利用作用域继承 具体看你两个controller之间的关系
如果要求执行环境是A那就只有一个办法就是emit事件, 其他都不行的
目前是使用了下面的方法:1、在B中添加 $rootScope.$broadcast('xxx')2、在A中添加 $scope.$on('xxx',()=>{query()})
$rootScope.$broadcast('xxx')
$scope.$on('xxx',()=>{query()})
参考文章:
Controller间的数据共享?最佳实践:使用Service
使用AngularJS构建应用时遇到的问题及解决方案(版本为1.3.9)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
写一个服务 然后服务写一个方法映射你这个A中的query方法 然后B中调用服务的方法 不知道这样行不行?
angular中控制器的通信方式有三种,1.基于事件的方式 2.基于服务注入的方式 3.利用作用域继承 具体看你两个controller之间的关系
如果要求执行环境是A那就只有一个办法就是emit事件, 其他都不行的
目前是使用了下面的方法:
1、在B中添加
$rootScope.$broadcast('xxx')2、在A中添加
$scope.$on('xxx',()=>{query()})参考文章:
Controller间的数据共享?最佳实践:使用Service
使用AngularJS构建应用时遇到的问题及解决方案(版本为1.3.9)