您的位置:首頁技術文章
文章詳情頁

javascript - 在資料錄入頁面的controller中已更新$rootScope全局變量,但在beforeLeave時訪問該變量卻仍為舊值?

瀏覽:109日期:2022-11-30 17:14:59

問題描述

資料錄入頁面的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,緩存是個大坑。。。

標簽: JavaScript
国产综合久久一区二区三区