cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - angular 如何刷新页面

我使用$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遍,这是什么情况呢?

淡淡烟草味淡淡烟草味2743 hari yang lalu574

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-05-15 16:54:27

    Anda boleh menyimpan data ke dalam sessionStorage. Kemudian siarkan dalam acara mendengar $on di bawah. Kemudian dengar acara siaran ini dalam pengawal sub-lapisan.

    balas
    0
  • 迷茫

    迷茫2017-05-15 16:54:27

    Tiada pemprosesan khas diperlukan Kod yang anda tulis dalam pengawal akan dilaksanakan secara automatik setiap kali anda beralih ke halaman ini

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-15 16:54:27

    Pengawal akan menjana tika baharu setiap kali setiap kali keadaan berubah, pengawal dan paparan adalah tika baharu. Ini juga konsisten dengan idea suntikan angularjs. Anda boleh log sendiri dalam kod pengawal.

    balas
    0
  • 迷茫

    迷茫2017-05-15 16:54:27

    "Kaedah dalam $stateChangeSuccess akan dicetuskan dua kali" Ini kerana anda telah menulis maklumat Pengawal dalam kedua-dua paparan dan Laluan

    balas
    0
  • Batalbalas