搜尋

首頁  >  問答  >  主體

javascript - 在資料輸入頁面的controller中已更新$rootScope全域變量,但在beforeLeave時存取該變數仍為舊值?

資料錄入頁面的controller中的程式碼:

1

2

3

4

5

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

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

    $rootScope.isDirty = newVal;

  });

})</code>

在資料錄入頁面上放了一個測試<p>來顯示$rootScope.isDirty全域變數值,證明該變數值已正確地更新為true。

頂層模組中註冊的$ionicView.beforeLeave()事件處理方法代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>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,百思不得其解!

    });

  });

});</code>

在資料錄入頁面的測試<p>上已經清楚看到isDirty已被正確地更新為true。但離開資料錄入頁面時,看到彈出的提示框顯示的isDirty值卻仍為false,百思不得其解!難道這個變數還能兩個不成? ? ?

阿神阿神2852 天前684

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-05-31 10:43:00

    最好不要喲過ionic,快取是個大坑。 。 。

    回覆
    0
  • 取消回覆