資料錄入頁面的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,百思不得其解!難道這個變數還能兩個不成? ? ?
最好不要喲過ionic,快取是個大坑。 。 。