javascript - 在資料錄入頁面的controller中已更新$rootScope全局變量,但在beforeLeave時訪問該變量卻仍為舊值?
問題描述
資料錄入頁面的controller中的代碼:
.controller('MobileInputCtrl', function ($scope, $rootScope) { $scope.$watch('myForm.$dirty', function (newVal) { $rootScope.isDirty = newVal; });})
在資料錄入頁面上放了個測試<p>來顯示$rootScope.isDirty全局變量值,證明該變量值已被正確地更新為true。
頂層模塊中注冊的$ionicView.beforeLeave()事件處理方法代碼:
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); // 顯示仍然為false,百思不得其解! }); });});
在資料錄入頁面的測試<p>上已經清楚地看到isDirty已被正確地更新為true。但在離開資料錄入頁面時,看到彈出的提示框顯示的isDirty值卻仍為false,百思不得其解!難道這個變量還能兩個不成???
問題解答
回答1:最好不要喲過ionic,緩存是個大坑。。。
