angular.js - angular 如何刷新頁面
淡淡烟草味
淡淡烟草味 2017-05-15 16:52:27
0
4
577

我使用$state.go();來切換頁
其中有些頁面的資料是動態的,我希望每次進來都重新載入資料。
請問如何每次當切換到這個頁面時都重新載入頁面(重新執行controller中的方法)?
PS:

$state.go('page',null,{
    reload:true
});

這個也沒有效果

app.run(['$rootScope', '$location',
    function($rootScope, $location) {
        $rootScope.$on('$stateChangeStart', function(evt, next, current) {
            alert('route begin change');
        });
    }
]);

我在這裡獲得了state變化的事件 然而並不知道如何刷新$scope...

PS2:
我是這樣實現的

$scope.$on('$stateChangeSuccess', function(evt, next, current) {
    // 数据reload
});

不知道算不算土辦法...
但這樣也出現一個新的問題
$stateChangeSuccess中的方法會觸發2遍,這是什麼情況呢?

淡淡烟草味
淡淡烟草味

全部回覆(4)
洪涛

你可以把資料存進sessionStorage。接著在下邊那個$on的監聽事件中進行廣播。然後在子層的controller中監聽這個廣播事件。

迷茫

不需要特別處理啊, 你寫在controller中的程式碼, 每次切換到這個頁面中時, 這裡面的程式碼都會自動執行一次的

巴扎黑

controller每次都會產生一個新的實例的,每次state的改變,controller連帶view都是新實例。這個跟angularjs的注入思想也比較一致。你可以自己在controller的程式碼裡log一下。

迷茫

"$stateChangeSuccess中的方法會觸發2遍" 這個是因為你在view 和Route裡面都寫了Controller訊息

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板