猿问

在资料录入页面的controller中已更新$rootScope全局变量,但在beforeLeave

资料录入页面的controller中的代码:

.controller("MobileInputCtrl", function ($scope, $rootScope) {

  $scope.$watch("myForm.$dirty", function (newVal) {

    $rootScope.isDirty = newVal;

  });

})

在资料录入页面上放了个测试<div>来显示$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,百思不得其解!

    });

  });

});

在资料录入页面的测试<div>上已经清楚地看到isDirty已被正确地更新为true。但在离开资料录入页面时,看到弹出的提示框显示的isDirty值却仍为false,百思不得其解!难道这个变量还能两个不成???

qq_笑_17
浏览 510回答 1
1回答

饮歌长啸

最好不要哟过ionic,缓存是个大坑。。。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答