父頁嵌套子頁(ui-view 裡面也有ui-view)
子頁面是用component來寫的,所以繼承不了父頁的scope
現在父給子傳資料是透過傳參實現的 $state.go('parent.child', {data: $scope.data})
$state.go('parent.child', {data: $scope.data})
但如果父的資料修改了,那麼子頁面是不知道的,還是原來那樣。
請問有什麼方法可以讓父頁面的資料修改通知到子頁面,或是別的傳參方式?
父scope$broadcast子頁可以收到,子頁scope$emit父頁可以收
$broadcast
$emit
這種應該算頁組件間的資料共享問題吧,我能想到的解決方法有以下幾種:
借用 angular 內部的事件機制,子頁面訂閱父頁發布的事件來進行一些變動,反之也是。
實作一個公用的service來儲存共享數據,分別在兩個頁面的元件中註入
使用第三方的狀態託管容器,例如大名鼎鼎的redux,使用ng-redux做適配,兩個頁面透過呼叫action來改變狀態容器儲存的狀態
action
父scope
$broadcast
子頁可以收到,子頁scope$emit
父頁可以收這種應該算頁組件間的資料共享問題吧,我能想到的解決方法有以下幾種:
借用 angular 內部的事件機制,子頁面訂閱父頁發布的事件來進行一些變動,反之也是。
實作一個公用的service來儲存共享數據,分別在兩個頁面的元件中註入
使用第三方的狀態託管容器,例如大名鼎鼎的redux,使用ng-redux做適配,兩個頁面透過呼叫
action
來改變狀態容器儲存的狀態