您的位置:首页技术文章
文章详情页

javascript - 在资料录入页面的controller中已更新$rootScope全局变量,但在beforeLeave时访问该变量却仍为旧值?

浏览:39日期: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