首页  >  问答  >  正文

javascript - angularjs ui-router 父页面的数据变动如何通知子页面

父页面嵌套子页面(ui-view 里面也有ui-view)

子页面是用component来写的,所以继承不了父页面的scope

现在父给子传数据是通过传参实现的 $state.go('parent.child', {data: $scope.data})

但如果父的数据修改了,那么子页面是不知道的,还是原来那样。

请问有什么方法可以让父页面的数据修改通知到子页面,或者别的传参方式?

曾经蜡笔没有小新曾经蜡笔没有小新2685 天前1092

全部回复(2)我来回复

  • PHP中文网

    PHP中文网2017-07-04 13:46:45

    父scope$broadcast子页面可以收到,子页面scope$emit父页面可以收

    回复
    0
  • 世界只因有你

    世界只因有你2017-07-04 13:46:45

    这种应该算页面组件间的数据共享问题吧,我能想到的解决方法有以下几种:

    • 借用 angular 内部的事件机制,子页面订阅父页面发布的事件来进行一些变动,反之也是。

    • 实现一个公用的service来储存共享数据,分别在两个页面的组件中注入

    • 使用第三方的状态托管容器,比如大名鼎鼎的redux,使用ng-redux做适配,两个页面通过调用action来改变状态容器储存的状态

    回复
    0
  • 取消回复