提交數(shù)據(jù)跳轉(zhuǎn)頁(yè)面后自動(dòng)刷新數(shù)據(jù)
$scope.$on('$ionicView.beforeEnter', function() {
$scope.doRefresh();
})
轉(zhuǎn)載
ionic中關(guān)于ionicView 的生命周期
當(dāng)我們來(lái)回切換頁(yè)面時(shí)候,視圖被緩存下來(lái),不用每次再去new一個(gè)新的視圖,可以大大地提高性能。當(dāng)跳出一個(gè)視圖后,視圖的元素被保存在DOM中,它的作用域也就不在$watch的作用域內(nèi),當(dāng)我們?cè)L問(wèn)一個(gè)已經(jīng)被緩存的視圖后,它的scope重新回到作用域內(nèi),同時(shí)留在DOM中的元素也被激活。
視圖生命周期:
視圖可以被緩存,也就意味著Controllers只需要加載一次,這必然會(huì)影響到controller的邏輯,去區(qū)別一個(gè)視圖是否已經(jīng)訪問(wèn)或者離開,事件是否已經(jīng)被添加來(lái)調(diào)用視圖的作用域,這些事件也包含視圖的數(shù)據(jù),比如標(biāo)題和返回按鈕是不是應(yīng)該顯示。也包含轉(zhuǎn)換數(shù)據(jù),比如動(dòng)畫的轉(zhuǎn)換類型和方向?qū)⒈皇褂没蛞呀?jīng)被使用的。
1.$ ionicView.loaded 視圖已經(jīng)被加載了,這個(gè)事件只發(fā)生一次,視圖被創(chuàng)建并且被添加到DOM中,當(dāng)視圖跳出后并被緩存的話,再次訪問(wèn)這個(gè)視圖這個(gè)事件將不會(huì)被激活。Loaded事件是個(gè)好方式讓你為這個(gè)視圖設(shè)置你的代碼; 然而,他并不是我們推薦的事件去監(jiān)聽視圖被激活。
2.$ionicView.enter 進(jìn)入視圖并被激活。這事件被激活來(lái)判斷這個(gè)視圖是第一個(gè)加載還是被緩存了的。
3.$ionicView.leave 離開這個(gè)視圖并且不是活動(dòng)頁(yè)面。調(diào)用這個(gè)事件判斷應(yīng)該被緩存還是摧毀。
4.$ionicView.beforeEnter 視圖是即將進(jìn)入并成為活動(dòng)視圖。
5.$ionicView.beforeLeave 視圖將被關(guān)閉并且不是活動(dòng)頁(yè)面。
6.$ionicView.afterEnter 進(jìn)入視圖并是當(dāng)前的活動(dòng)頁(yè)面
7.$ionicView.afterLeave 已經(jīng)離開視圖,并成為非激活頁(yè)面
8.$ionicView.unloaded 視圖的Controller已經(jīng)被摧毀并且他的頁(yè)面元素也從Dom中移除