资料录入页面的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,缓存是个大坑。。。