我在certificate_info.js中$emit,
在home.js中$broadcast,
在my_certificate.js中$on
路由如下
在certificateInfo中的log如下
index.html如下
当homeCtrl接收到cerInfoCtrlChange并生成cerInfoCtrlChangeFromParent通知的时候,myCertificateCtrl并不存在,收不到cerInfoCtrlChangeFromParent。我想问问有什么解决办法?我现在在certificateInfo页面中更改数据后然后跳回到certificate,要重新让certificate.js重新请求一下接口。从而达到更新certificate数据的效果。
其实你这种情况很好处理的,你的homeCtrl一直存在做为parent controller, 你在homeCtrl中设值就行了,比如在homeCtrl中设置$scope.A = '', cerInfoCtrl 可以直接修改$scope.$parent.A 这个值,然后打开my_certificateCtrl的时候可以直接取用$scope.$parent.A
还有种方法就是用service或factory来共享值