javascript - 在資料輸入頁面的controller中已更新$rootScope全域變量,但在beforeLeave時存取該變數仍為舊值?
資料錄入頁面的controller中的程式碼:
1 2 3 4 5 | <code>.controller( "MobileInputCtrl" , function ( $scope , $rootScope ) {
$scope . $watch ( "myForm.$dirty" , function (newVal) {
$rootScope .isDirty = newVal;
});
})</code>
|
在資料錄入頁面上放了一個測試<p>來顯示$rootScope.isDirty全域變數值,證明該變數值已正確地更新為true。
頂層模組中註冊的$ionicView.beforeLeave()事件處理方法代碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <code>angular.module( "app" , [])
.run( function ( $ionicPlatform , $rootScope ) {
$ionicPlatform .ready( function () {
$rootScope . $on ( "$ionicView.beforeEnter" , function (event, view) {
$rootScope .isDirty = false;
});
$rootScope . $on ( "$ionicView.beforeLeave" , function (event, view) {
alert( $rootScope .isDirty);
});
});
});</code>
|
在資料錄入頁面的測試<p>上已經清楚看到isDirty已被正確地更新為true。但離開資料錄入頁面時,看到彈出的提示框顯示的isDirty值卻仍為false,百思不得其解!難道這個變數還能兩個不成? ? ?
阿神2852 天前684