业务逻辑:我需要在两个同级(不存在父子关系)的controller之间传值。采用$rootScope向下广播,再在子Scope中$on接收,代码如下:
alert 成功接收到a的值
失败,控制台打印不出来data
这种方式却失败了,之后采用$scope向上传递,再用$rootScope接收,成功。
请问第一种方式为什么会失败?他和第二种难道不一样么?
angular 的$broadcast和$emit父级和子级只的是controller,而不是$scope和$rootScope。第一个的controller中,你把$on放在$rootScope上应该就能接收到数据了。现在的状态$rootScope并不能访问$scope.
没道理啊,仔细检查下看看。我试了一把,第一种方法完全可以:
http://plnkr.co/edit/uqswfDw3f0lvcolnrTQ...
确实是 ionic 就不用补了。。。我大概知道什么情况了。
把 $state.go('xxxxxx')
改成 $ionicHistory.goBack()
记得 inject $ionicHistory