同级controller之间通信问题

我在certificate_info.js中$emit,

clipboard.png

在home.js中$broadcast,

clipboard.png

在my_certificate.js中$on

clipboard.png

路由如下

clipboard.png

clipboard.png

在certificateInfo中的log如下

clipboard.png

index.html如下

clipboard.png

当homeCtrl接收到cerInfoCtrlChange并生成cerInfoCtrlChangeFromParent通知的时候,myCertificateCtrl并不存在,收不到cerInfoCtrlChangeFromParent。我想问问有什么解决办法?我现在在certificateInfo页面中更改数据后然后跳回到certificate,要重新让certificate.js重新请求一下接口。从而达到更新certificate数据的效果。

阅读 3k
2 个回答

其实你这种情况很好处理的,你的homeCtrl一直存在做为parent controller, 你在homeCtrl中设值就行了,比如在homeCtrl中设置$scope.A = '', cerInfoCtrl 可以直接修改$scope.$parent.A 这个值,然后打开my_certificateCtrl的时候可以直接取用$scope.$parent.A

还有种方法就是用service或factory来共享值

$rootScope.$broadcast

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏