业务逻辑:我需要在两个同级(不存在父子关系)的controller之间传值。采用$rootScope向下广播,再在子Scope中$on接收,代码如下:
alert 成功接收到a的值
失败,控制台打印不出来data
这种方式却失败了,之后采用$scope向上传递,再用$rootScope接收,成功。
请问第一种方式为什么会失败?他和第二种难道不一样么?
业务逻辑:我需要在两个同级(不存在父子关系)的controller之间传值。采用$rootScope向下广播,再在子Scope中$on接收,代码如下:
alert 成功接收到a的值
失败,控制台打印不出来data
这种方式却失败了,之后采用$scope向上传递,再用$rootScope接收,成功。
请问第一种方式为什么会失败?他和第二种难道不一样么?
angular 的$broadcast和$emit父级和子级只的是controller,而不是$scope和$rootScope。第一个的controller中,你把$on放在$rootScope上应该就能接收到数据了。现在的状态$rootScope并不能访问$scope.
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
确实是 ionic 就不用补了。。。我大概知道什么情况了。
把
$state.go('xxxxxx')
改成$ionicHistory.goBack()
记得 inject $ionicHistory