javascript - 在资料录入页面的controller中已更新$rootScope全局变量,但在beforeLeave时访问该变量却仍为旧值?
阿神
阿神 2017-05-31 10:41:00
0
1
616

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板